2
我想排除GROUP BY
子句中的一個術語,該術語阻止我將術語彙總在一起。奇怪的是,我在case語句中使用了導致這種情況的術語,而查詢仍希望我在group by子句中使用它,否則會產生錯誤。如何解決這個問題?GROUP BY子句錯誤
更具體地說:在SELECT
子句中的案例中使用的vr.krebel強制我也添加它GROUP BY
。如何避免這種情況?
SELECT vr.ktonr,
vr.foretagkod,
'' AS persign,
'' AS TYPE,
NULL,
1 AS antal,
SUM(vr.debbel-vr.krebel),
0,
vr.kostbar,
vr.koststallekod,
vr.projcode,
vr.redovisnar,
vr.period,
'Allocated vouchers' AS artbeskr,
ko.ktobeskr AS kodescr,
CASE
WHEN ((vr.ktonr LIKE '9600'
OR vr.ktonr LIKE '3%')
AND (vr.krebel>0)) THEN 'Revenues'
ELSE 'Costs'
END
FROM vr
INNER JOIN ko ON ko.ktonr=vr.ktonr
AND ko.redovisnar=datepart(YEAR,vr.bokfdat)
AND ko.foretagkod=vr.foretagkod
WHERE vr.foretagkod = 300
AND vr.intsource = 20
AND vr.projcode = 50040
AND (vr.bokfdat BETWEEN CAST('2012-12-01' AS DATETIME) AND CAST('2012-12-31' AS DATETIME))
GROUP BY vr.ktonr,
vr.foretagkod,
vr.kostbar,
vr.koststallekod,
vr.projcode,
vr.redovisnar,
vr.period,
ko.ktobeskr,
vr.krebel
更具體地講:這是SELECT
子句中使用的情況下,內vr.krebel迫使我加太GROUP BY
,如何避免這種情況?
您需要在您的'CASE'中使用AND SUM(vr.krebel)> 0'或其他聚合函數 – hsan 2013-02-15 13:05:35