2011-09-13 91 views
0

這就是我想要實現:如何按Column1進行分組並將Count2與Count(*)相乘?

SELECT COUNT(*) * dd.Material_Quantity as [Count], tabSparePart.SparePartName 
FROM   tabDataDetail AS dd INNER JOIN 
         tabSparePart ON dd.fiSparePart = tabSparePart.idSparePart 
WHERE dd.Reused_Indicator = 1 
GROUP BY tabSparePart.SparePartName 
ORDER BY Count DESC, tabSparePart.SparePartName 

計數的所有sparepart OCCURENCES並與他們對應的Material_Quantity值乘以他們。 但我得到以下錯誤:

8118: Column 'tabDataDetail.Material_Quantity' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.

我怎麼能乘這兩個值有意義?簡單的SUMAVG會給出正確的結果嗎?例如:COUNT(*) * AVG(dd.Material_Quantity) as [Count]

回答

1

如果您正在尋找量的總和,你可以使用sum

SUM(dd.Material_Quantity) 
+0

嗯,你的意思我並不需要在所有的,因爲我反正SELECT COUNT(*)想要獲得Material_Quantity。這就說得通了。謝謝。 'Sum'只會求出符合'Where'條件和'Group-By'的行? –

+0

@Tim Schmelter:是的,這隻會和'where'匹配的行總和,'sum'只能用於組中的行。 – Andomar

+0

我已經接受你的答案,雖然我有問題,許多行有一個鏈接的備件,但material_quantity爲null或0.我想我會改變它們到1.編輯:解決:我忘記添加另一個條件在我的地方條款。 –

相關問題