0
これは私が達成しようとしているものです:Column1でグループ化し、Column2に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発生箇所をカウントし、それらに対応する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.
を?単純なSUM
またはAVG
は正しい結果を与えるでしょうか? COUNT(*) * AVG(dd.Material_Quantity) as [Count]
うーん、私はとにかくので、私はすべてでCOUNT(*)を選択する必要はありません意味Material_Quantityを取得したいそれは理にかなっている。ありがとうございました。 'Sum'は' Where'-conditionと 'Group-By'にマッチする行だけを合計しますか? –
@Tim Schmelter:これは 'where'と一致する行だけを合計し、' sum'はグループの行のみを対象とします。 – Andomar
多くの行にリンクされたスペアパーツがありますが、material_quantityがnullまたは0であるという問題がありますが、私はあなたの答えを受け入れました。私はそれらを1に変更すると思います。編集:解決済み:私はどこに別の条件を追加するのを忘れてしまった句。 –