如何将 2 个单独的临时表的输出合并到一个查询中?
How do I merge the output from 2 separate temp tables into a single query?
我正在使用 SQL Server 2012
并且我有 2 个单独的 T-SQL
查询,我试图将它们合并为一个查询。
查询 1:
USE MyDatabase
SELECT [Col A], [Col B], [Col C]
INTO #TempTable
FROM MyList
WHERE [Date] >= '2018-01-01'
SELECT * FROM #TempTable
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
查询 2:
USE MyDatabase
SELECT [Col A], [Col B], [Col C]
INTO #TempTable2
FROM MyList
WHERE [StayDate] >= '2018-01-01'
AND [DateCreated] <= '2018-01-27'
SELECT * FROM #TempTable2
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
我试过使用UNION ALL
语法,如下:
USE MyDatabase
SELECT [Col A], [Col B], [Col C]
INTO #TempTable
FROM MyList
WHERE [StayDate] >= '2018-01-01'
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
UNION ALL
SELECT [Col A], [Col B], [Col C]
INTO #TempTable2
FROM MyList
WHERE [StayDate] >= '2018-01-01'
AND [DateCreated] <= '2018-01-27'
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
我的 objective 是将 2 个主元结果合并为一个输出 table。但是,这是行不通的!我该如何重写这个查询?
如果您希望在一个 table 中包含此内容,您将在查询中只有一个 into
。对于 UNION ALL
,这是在第一个查询中:
SELECT [Col A], [Col B], [Col C]
INTO #TempTable
FROM MyList
WHERE [StayDate] >= '2018-01-01'
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
UNION ALL
SELECT [Col A], [Col B], [Col C]
FROM MyList
WHERE [StayDate] >= '2018-01-01'
AND [DateCreated] <= '2018-01-27'
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable;
也就是说,我认为您的查询没有用。此答案仅解决有关将数据保存到一个 table.
的语法问题
我正在使用 SQL Server 2012
并且我有 2 个单独的 T-SQL
查询,我试图将它们合并为一个查询。
查询 1:
USE MyDatabase
SELECT [Col A], [Col B], [Col C]
INTO #TempTable
FROM MyList
WHERE [Date] >= '2018-01-01'
SELECT * FROM #TempTable
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
查询 2:
USE MyDatabase
SELECT [Col A], [Col B], [Col C]
INTO #TempTable2
FROM MyList
WHERE [StayDate] >= '2018-01-01'
AND [DateCreated] <= '2018-01-27'
SELECT * FROM #TempTable2
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
我试过使用UNION ALL
语法,如下:
USE MyDatabase
SELECT [Col A], [Col B], [Col C]
INTO #TempTable
FROM MyList
WHERE [StayDate] >= '2018-01-01'
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
UNION ALL
SELECT [Col A], [Col B], [Col C]
INTO #TempTable2
FROM MyList
WHERE [StayDate] >= '2018-01-01'
AND [DateCreated] <= '2018-01-27'
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
我的 objective 是将 2 个主元结果合并为一个输出 table。但是,这是行不通的!我该如何重写这个查询?
如果您希望在一个 table 中包含此内容,您将在查询中只有一个 into
。对于 UNION ALL
,这是在第一个查询中:
SELECT [Col A], [Col B], [Col C]
INTO #TempTable
FROM MyList
WHERE [StayDate] >= '2018-01-01'
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable
UNION ALL
SELECT [Col A], [Col B], [Col C]
FROM MyList
WHERE [StayDate] >= '2018-01-01'
AND [DateCreated] <= '2018-01-27'
PIVOT(SUM([Col B])
FOR [Col A] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])) AS PVTTable;
也就是说,我认为您的查询没有用。此答案仅解决有关将数据保存到一个 table.
的语法问题