2012-04-04 63 views
0

我有一個計算列,但不知道如何通過計算列BY子句

SELECT Category, SUM(Actjan + Actfeb + Actmar) AS Q, 'Q1' as quater 
FROM tbl 
GROUP BY Category, 'Q1' as quater 

這是SQL Server 2008 R2上的列添加到組 - 錯誤的是

每個GROUP BY表達式都必須包含至少一個不是 外部引用的列。

+0

剛剛找到一個辦法 - 改變計算列到STR(COUNT(「Q1」))+「Q1」作爲四所以不會被 – mackjazzy 2012-04-04 13:45:54

+2

組需要它錯誤說,你在組一個常數通過。 'Q1'是一個常數,在每一行都重複出現,並且根本不需要它。 – 2012-04-04 13:47:56

+0

是的,我收到一條錯誤消息,但現在我沒有。必須是不同的列,我認爲' – mackjazzy 2012-04-04 14:41:06

回答

0

嘗試使用列

... 
GROUP BY Category, 'Q1' 
+0

這給出了同樣的錯誤 – mackjazzy 2012-04-04 14:39:18

1

的價值你沒有用一常數(您發佈的例子是不是一個計算列)需要組。以下應完全按要求工作。

SELECT Category,SUM(Actjan + Actfeb + Actmar) AS Q,'Q1' as quater 
FROM tbl 
GROUP BY Category