我收到错误"每个GROUP BY表达式必须包含至少一个不是外部引用的列。"在SQL Server中运行以下查询时。
DECLARE @runDate smalldatetime = GETDATE()
SELECT @runDate AS RunDate,
Division,
Product ,
CASE WHEN Score >= 0 AND Score <= 6 THEN 'GOOD'
WHEN Score IN (7,8) THEN 'EXCELLENT'
WHEN Score IN (9,10) THEN 'OUTSTANDING'
ELSE 'INVALID' END AS Rank,
COUNT(*) AS TOTAL
FROM CurrentAnalysis
WHERE TimeStamp > @runDate - 1
AND TimeStamp <= @runDate
AND Source IN ('XXX', 'AAA')
GROUP BY @runDate,
Division, Product,
CASE WHEN Score >= 0 AND Score <= 6 THEN 'GOOD'
WHEN Score IN (7,8) THEN 'EXCELLENT'
WHEN Score IN (9,10) THEN 'OUTSTANDING'
ELSE 'INVALID' END
我在GROUP BY中给出了相同的CASE,但仍然得到相同的错误。有人能帮助我吗?
答案 0 :(得分:3)
错误消息与group by
中包含变量有关,如果删除它,你应该没事:
GROUP BY Division, Product,
CASE WHEN Score >= 0 AND Score <= 6 THEN 'GOOD'
WHEN Score IN (7,8) THEN 'EXCELLENT'
WHEN Score IN (9,10) THEN 'OUTSTANDING'
ELSE 'INVALID'
END