| Author |
Topic |
|
confuzed04
Starting Member
39 Posts |
Posted - 2007-06-08 : 11:42:26
|
| I have the following query and for some reason when I try to run it, it tells me there is an incorrect syntax near the 'union' statement. Can you tell me what is wrong with this?SELECT MDN, DATEPART(d,CallDate) as CallDate, DATEPART(hh,CallDate) as Hour,sum(ceiling((Cast(DurationSeconds as Decimal)/60))) as MinutesFROM VoiceCallDetailRecord WHERE DurationSeconds > 0 and CallDate >= '02/19/2007' and calldate < '03/19/2007' and COS = 3 AND (((CONVERT(varchar, CallDate, 108) Between '21:00:00' AND '23:59:59') OR (CONVERT(varchar, CallDate, 108) Between '00:00:00' AND '07:00:00'))OR DATEPART(weekday, CallDate) in (1,7)) and NOT (Left(Endpoint,3) IN ('011') or (Left(Endpoint,4) IN ('1340','1876','1868','1809', '1246','1242','1780','1403', '1250','1604','1807','1519', '1204','1506','1709','1867', '1902','1705','1613','1416', '1905','1902','1514','1450', '1418','1819','1306','1867')))order BY DATEPART(d,CallDate), DATEPART(hh,CallDate), MDN UNION SELECT MDN, DATEPART(d,CallDate) as CallDate, DATEPART(hh,CallDate) as Hour, sum(ceiling((Cast(DurationSeconds as Decimal)/60))) as MinutesFROM ZeroChargeVCDRecord WHERE DurationSeconds > 0 and CallDate >= '02/19/2007' and calldate < '03/19/2007' and COS = 3 AND (((CONVERT(varchar, CallDate, 108) Between '21:00:00' AND '23:59:59') OR (CONVERT(varchar, CallDate, 108) Between '00:00:00' AND '07:00:00'))OR DATEPART(weekday, CallDate) in (1,7)) and NOT (Left(Endpoint,3) IN ('011') or (Left(Endpoint,4) IN ('1340','1876','1868','1809', '1246','1242','1780','1403', '1250','1604','1807','1519', '1204','1506','1709','1867', '1902','1705','1613','1416', '1905','1902','1514','1450', '1418','1819','1306','1867')))order BY DATEPART(d,CallDate), DATEPART(hh,CallDate), MDN |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2007-06-08 : 11:45:28
|
remove the 1st order by statement in the 1st query KH |
 |
|
|
confuzed04
Starting Member
39 Posts |
Posted - 2007-06-08 : 12:08:09
|
| When I eliminate the 1st Order By statement right before the union clause I get an error as follows:Msg 8120, Level 16, State 1, Line 1Column 'VoiceCallDetailRecord.CallDate' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. |
 |
|
|
Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)
7020 Posts |
Posted - 2007-06-08 : 12:11:22
|
| if you use the SUM function in a query, you must use a GROUP BY.CODO ERGO SUM |
 |
|
|
confuzed04
Starting Member
39 Posts |
Posted - 2007-06-08 : 15:03:30
|
| I eliminated all the sum functions in the query and put in the Order By statement and I am still getting a incorrect syntax error near "union" statement error. This is what I did:SELECT DATEPART(d,CallDate) as CallDate, DATEPART(hh,CallDate) as Hour,(ceiling((Cast(DurationSeconds as Decimal)/60))) as MinutesFROM VoiceCallDetailRecord WHERE DurationSeconds > 0 and CallDate >= '02/19/2007' and calldate < '03/19/2007' and COS = 3 AND (((CONVERT(varchar, CallDate, 108) Between '21:00:00' AND '23:59:59') OR (CONVERT(varchar, CallDate, 108) Between '00:00:00' AND '07:00:00'))OR DATEPART(weekday, CallDate) in (1,7)) and NOT (Left(Endpoint,3) IN ('011') or (Left(Endpoint,4) IN ('1340','1876','1868','1809','1246','1242','1780','1403','1250','1604','1807','1519','1204','1506','1709','1867','1902','1705','1613','1416','1905','1902','1514','1450','1418','1819','1306','1867')))order BY DATEPART(d,CallDate), DATEPART(hh,CallDate), MDN unionSELECT MDN, DATEPART(d,CallDate) as CallDate, DATEPART(hh,CallDate) as Hour, (ceiling((Cast(DurationSeconds as Decimal)/60))) as MinutesFROM ZeroChargeVCDRecord WHERE DurationSeconds > 0 and CallDate >= '02/19/2007' and calldate < '03/19/2007' and COS = 3 AND (((CONVERT(varchar, CallDate, 108) Between '21:00:00' AND '23:59:59') OR (CONVERT(varchar, CallDate, 108) Between '00:00:00' AND '07:00:00'))OR DATEPART(weekday, CallDate) in (1,7)) and NOT (Left(Endpoint,3) IN ('011') or (Left(Endpoint,4) IN ('1340','1876','1868','1809','1246','1242','1780','1403','1250','1604','1807','1519','1204','1506','1709','1867','1902','1705','1613','1416','1905','1902','1514','1450','1418','1819','1306','1867')))order BY DATEPART(d,CallDate), DATEPART(hh,CallDate), MDN |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2007-06-09 : 00:32:54
|
| Remove order by clause before unionMadhivananFailing to plan is Planning to fail |
 |
|
|
|
|
|