Eng Abdull A-ziz Ответов: 1

Multi select в SQL server


дорогие все,

у меня есть 3 SQL оператора я хочу объединить их в один но каждый из них имеет свое собственное условие where как я могу их объединить
1-й:
SELECT
	ProjectCode,
	SUM (- 1 *(CreditAm) +(DebitAm)) AS Balance
FROM
	[dbo].[AcDetail]
WHERE
	AcCode IN (
		401000,
		402000,
		403000,
		404000,
		405000,
		406000,
		407000,
		499999
	)
AND BranchCode = 'WP'
AND TDate >= '2016-01-01'
AND TDate <= '2016-12-31'
GROUP BY
	ProjectCode


2-й
SELECT
	ProjectCode,
	SUM (- 1 *(CreditAm) +(DebitAm)) AS Materials
FROM
	[dbo].[AcDetail]
WHERE
	AcCode IN (600001, 600002, 600151)
AND BranchCode = 'WP'
AND TDate >= '2016-01-01'
AND TDate <= '2016-12-31'
GROUP BY
	ProjectCode


3-й:
SELECT
	ProjectCode,
	SUM (- 1 *(CreditAm) +(DebitAm)) AS Salaries
FROM
	[dbo].[AcDetail]
WHERE
	AcCode IN (
		650001,
		650005,
		650006,
		650007,
		650008,
		650009,
		650010,
		650020,
		650021,
		650022,
		650023,
		650024,
		650025,
		650026,
		650027
	)
AND BranchCode = 'WP'
AND TDate >= '2016-01-01'
AND TDate <= '2016-12-31'
GROUP BY
	ProjectCode
ORDER BY
	ProjectCode


Что я уже пробовал:

SELECT
	ProjectCode,
	SUM (- 1 *(CreditAm) +(DebitAm)) AS Balance
FROM
	[dbo].[AcDetail]
WHERE
	AcCode IN (
		401000,
		402000,
		403000,
		404000,
		405000,
		406000,
		407000,
		499999
	)
AND BranchCode = 'WP'
AND TDate >= '2016-01-01'
AND TDate <= '2016-12-31'
GROUP BY
	ProjectCode

1 Ответов

Рейтинг:
2

NightWizzard

Вы можете использовать UNION соответственно. UNION ALL оператор для объединения стольких одиночных запросов, сколько вам нужно, до тех пор, пока все они возвращают точно такие же столбцы в том же порядке.


Eng Abdull A-ziz

не могли бы вы написать запрос для меня

NightWizzard

Вы ничему не научитесь, если кто-то другой будет выполнять вашу работу. Посмотрите здесь больше о союзе: https://msdn.microsoft.com/de-de/library/ms180026.aspx