2014-01-15 86 views
4

我需要選擇兩列。計算一列的總和並按原樣顯示它2.顯示列。所以我嘗試下面的代碼如何選擇具有聚合函數sql server的列

SELECT Sum(CONVERT(FLOAT, Replace(total, Char(0), ''))) AS Total, 
     [product name] 
FROM tb_sales_entry_each_product 
GROUP BY [sales date] 

錯誤信息

Column 'tb_sales_entry_each_product.Product Name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. 

在那裏我做error.thanks

+0

您原來的查詢有一列在選擇語句和一個不同的列在組by子句。你需要改變的是把選擇語句的列按條目 – 2014-01-15 21:20:29

回答

1

剛需羣體

select SUM(CONVERT(float, REPLACE(Total, CHAR(0), ''))) as Total, [Product Name] 
from tb_sales_entry_each_product group by [Sales Date], [product name] 

當你做一個商業計數總和等,任何其他列需要分組。 多數民衆贊成多數民衆贊成在多數民衆贊成你就錯過了

+0

感謝錯誤清除。你可以解釋它... – Happy

+0

沒有問題@快樂 – lemunk

+0

已經做到了,如果有任何列存在於你的地方子句執行數字函數時,你需要包括這些列以及組條件 – lemunk

1

試試這個:

select SUM(CONVERT(float, REPLACE(Total, CHAR(0), ''))) as Total, 
[Product Name] ,[Sales Date] 
from tb_sales_entry_each_product 
group by [Sales Date],[Product Name] 
+0

歸於組謝謝錯誤清除。你可以解釋它... – Happy

+0

@Happy你的列產品名稱是由組中缺少。基本原則是,如果在select中使用任何具有任何聚合函數的列,則需要在group by中提及它,它在錯誤中提及,因爲它不包含在聚合函數或GROUP BY子句中。 –

+0

@快樂...如果你接受它會更高興作爲回答 –