2017-05-05 21 views
1

SQLテーブルで合計計算を実行して、特定の営業担当者に対して特定の日付までの特定の在庫アイテムの数量を検索します。SQL集計、複数のグループ化基準と日付基準

私は日付範囲の基準を考慮しない限り、営業担当者/商品ベースで数量を見つけるために合計機能を実行できますが、そのアスペクトを追加するとすべてが少し梨の形になります!ここに私のコードは、これまでのところです:

SELECT Salesperson, Item No, Sum(Quantity) AS 'Quantity' 
FROM dbo 
WHERE (Location Code='VAN') 
GROUP BY Salesperson, Item No, 
HAVING (Registering Date<={ts '2017-05-03 00:00:00'}) 

= VANフィルタは、それが倉庫quantities.My SQLの知識を無視して確保するために必要とされる場所のコードが、私は仕事でそれに遭遇するいくつかのインスタンスに制限されていると私の相互作用が大きく基づいていますExcelでMicrosoft Queryを使用します。上記のコードを見ると、 '登録日'の基準は 'WHERE'セクションにあるはずですが、Microsoft Queryで使用可能なオプションを使用して条件を追加すると、 'HAVING'という行が作成されます。

誰でもポインタを提供できれば、それは非常に感謝しています!私はこのようなクエリ想像

乾杯

ピーター

+1

あなたは与えられている例外情報を提供できますか? – War

+0

'GROUP BY'の最後にカンマがあり、' Item No'は 'GROUP BY'では有効ではなく、おそらく' SELECT'では意図していません。 –

+0

War- クエリを実行するときに例外情報やプロンプトは表示されません。表示された数量は、計算を確認するために実行する手動合計と一致しません。 Gordon Linoff - ここで使用される列名は、現在のデータの文字列の長さのためにわずかに変更されています。私のDBでは「Item No」の列はItem_No –

答えて

1

:書かれたとして、

SELECT Salesperson, [Item No], Sum(Quantity) AS Quantity 
--------------------^ escape the non-standard column name 
FROM dbo.?? 
---------^ table name goes here 
WHERE Location Code = 'VAN' AND 
     [Registering Date] <= '2017-05-03' 
------^ put the filtering condition in the correct clause 
GROUP BY Salesperson, Item No 
-----------------------------^ remove the comma 

あなたのコードを、複数のエラーがあります。私は、ほとんどがオリジナルのクエリではなく、転記エラーであると推測しています(たとえば、テーブルがFROMで指定されていないとクエリは実行されません)。 「メジャー」エラーは、WHERE節ではなくHAVING節でフィルタリングされます。

+0

です。ありがとうございました。これは私のために解決しました。私はそれが "HAVING"の行に関係していた疑いがありました。何らかの理由で、Microsoft Queryでさまざまな条件を適用すると、場所コード1がWHEREステートメントに、日付基準がHAVINGステートメントに追加されます。 –

+0

結果の合計数量をフィルタリングしたい場合、数量が0より多いSalesperson/Itemのインスタンスのみを表示するには、HAVING文を使用しますか?私はいくつかのバリエーションを試しましたが、最後の行に追加すると、私が最初に持っていたエラーの種類に戻ってきます。ありがとう! –

関連する問題