[英]How do I merge the output from 2 separate temp tables into a single query?
I am using SQL Server 2012
and I have 2 separate T-SQL
queries which I am trying to merge as a single query. 我正在使用SQL Server 2012
并且有2个单独的T-SQL
查询,尝试将它们合并为一个查询。
Query 1: 查询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
Query 2: 查询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
I have tried using the UNION ALL
syntax, as follows: 我尝试使用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
My objective is to merge the 2 pivot results as one single output table. 我的目标是将2个枢轴结果合并为一个输出表。 However, this is not working! 但是,这不起作用! How do I re-write this query? 如何重新编写此查询?
If you want this in one table, you would have only one into
in the query. 如果你想在这一个表,你将有只有一个into
查询。 For UNION ALL
this is in the first query: 对于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;
That said, I don't think your queries work. 就是说,我认为您的查询无效。 This answer only addresses the syntax question about saving data to one table. 此答案仅解决有关将数据保存到一个表的语法问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.