Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
jhorten2011
Starting Member
14 Posts |
Posted - 2011-12-10 : 16:20:54
|
| I really need some help combining the results from 3 tables into a single resultset. I've tried using UNION, but I get the following error."ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator."With my following query I get the results as 3 separate resultsets like below:Sun 4274Mon 13871Tue 24803Wed 12366Thu 12412Fri 11639Sat 6654Sun 5585Mon 17766Tue 32152Wed 16074Thu 15824Fri 15690Sat 8629Sun 719Mon 2207Tue 4494Wed 2123Thu 2150Fri 2313Sat 1153What I need is to get the resultset like below.Day Table1 Table2 Table3Sun 4274 5585 719Mon 13871 17766 2207Tue 24803 32152 4494Wed 12366 16074 2123Thu 12412 15824 2150Fri 11639 15690 2313Sat 6654 8629 1153Can someone please help me with my query below to get the results above?SELECT LEFT(DATENAME(weekday,[TimeStamp]), 3) AS [Day], COUNT(*) AS [Total Volume Table1]FROM CLAIMS.Table1WHERE [TimeStamp] BETWEEN CAST('2011-03-01 00:00:00.000' AS DATETIME) AND CAST('2011-03-08 23:59:59.999' AS DATETIME)GROUP BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp])ORDER BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp]) DESCSELECT LEFT(DATENAME(weekday,[TimeStamp]), 3) AS [Day], COUNT(*) AS [Total Volume Table2]FROM CLAIMS.Table2WHERE [TimeStamp] BETWEEN CAST('2011-03-01 00:00:00.000' AS DATETIME) AND CAST('2011-03-08 23:59:59.999' AS DATETIME)GROUP BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp])ORDER BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp]) DESCSELECT LEFT(DATENAME(weekday,[TimeStamp]), 3) AS [Day], COUNT(*) AS [Total Volume Table3]FROM CLAIMS.Table3WHERE [TimeStamp] BETWEEN CAST('2011-03-01 00:00:00.000' AS DATETIME) AND CAST('2011-03-08 23:59:59.999' AS DATETIME)GROUP BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp])ORDER BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp]) DESC |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2011-12-11 : 01:09:03
|
| [code]SELECT LEFT([Day],3) AS [Day],SUM([Total Volume Table1]) AS [Total Volume Table1],SUM([Total Volume Table2]) AS [Total Volume Table2],SUM([Total Volume Table3]) AS [Total Volume Table3]FROM (SELECT DATEPART(weekday,[TimeStamp]) AS [DayNo],DATENAME(weekday,[TimeStamp]) AS [Day], COUNT(*) AS [Total Volume Table1],CAST(NULL AS int) AS [Total Volume Table2],CAST(NULL AS int) AS [Total Volume Table3]FROM CLAIMS.Table1WHERE [TimeStamp] BETWEEN CAST('2011-03-01 00:00:00.000' AS DATETIME) AND CAST('2011-03-08 23:59:59.999' AS DATETIME)GROUP BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp])UNION ALLSELECT DATEPART(weekday,[TimeStamp]),DATENAME(weekday,[TimeStamp]),NULL, COUNT(*) ,NULLFROM CLAIMS.Table2WHERE [TimeStamp] BETWEEN CAST('2011-03-01 00:00:00.000' AS DATETIME) AND CAST('2011-03-08 23:59:59.999' AS DATETIME)GROUP BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp])UNION ALLSELECT DATEPART(weekday,[TimeStamp]),DATENAME(weekday,[TimeStamp]),NULL,NULL, COUNT(*) FROM CLAIMS.Table3WHERE [TimeStamp] BETWEEN CAST('2011-03-01 00:00:00.000' AS DATETIME) AND CAST('2011-03-08 23:59:59.999' AS DATETIME)GROUP BY DATEPART(weekday,[TimeStamp]), DATENAME(weekday,[TimeStamp]))tGROUP BY [DayNo],[Day]ORDER BY [DayNo], [Day] DESC[/code]------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
 |
|
|
jhorten2011
Starting Member
14 Posts |
Posted - 2011-12-11 : 09:15:18
|
| Thank you so much, that is exactly what I was trying to achieve. |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2011-12-11 : 11:11:45
|
| wc------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
 |
|
|
|
|
|
|
|