私はこの問題にぶち当たっていますが、単純な解決策が必要であることがわかりますが、見つけられません。SQL Serverで句を持つがGroup By節に列選択を使用する方法
私は、特定の日付の間に部分ごとのシリアル番号を取得したいと考えています。日付の選択がなければ、このように見えます。
SELECT
Part_Name,
COUNT(DISTINCT Serial_No) AS 'Serial Frequency'
FROM Inventory
GROUP BY Part_Name
そして、パーツあたりのシリアル数がわかります。
part1 55
part2 32
part3 48
etc etc
だから、これを2つの日付の間で選択してください。私はHavingを使用する必要があることを知っていますが、これはセクションごとにグループに追加しなければなりません。 I.
SELECT
Part_Name,
COUNT(DISTINCT Serial_No) AS 'Serial Frequency'
FROM Inventory
GROUP BY Part_Name, Grade_Date
HAVING Grade_Date > '2016-06-01' AND Grade_Date < '2016-07-01'
出力:
part1 1
part1 1
part1 1
part2 1
part2 1
etc etc
無愛想これを行うことができますので、私はここに明らかにどのような事をしないのですか?これを含めると、このエラーが発生します。
列「Inventory.Grade_Date」は、集計関数またはGROUP BY句に含まれていないため、HAVING句では無効です。
まあまあ!私はどこで使用しようとしていると誓って、それは私にエラーを投げたので、私はグループで一緒に持っていた。だから、あなたが何かをグループ句で比較しているときです。それは理にかなっている。 – Danrex