2011-09-13 55 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.编辑:解决:我忘记添加另一个条件在我的地方条款。 –

相关问题