2012-03-21 7 views
0

私は質問があります。私はPIX_SKUによって合計グループを引っ張るはずです。ここで私の問題は、量を倍増させていることです。どんな助けもそれを感謝するでしょう。ここで合計演算子が無効な明確なクエリは機能していませんか?

SELECT DISTINCT(A2.PIX_SKU), A2.PIX_DATE, SUM(A1.ID_QTY) AS TOTAL 
FROM IDCASE00_EXTRACT A1,PX_CLEAN A2 
WHERE A1.ID_SKU = A2.PIX_SKU 
GROUP BY A2.PIX_SKU, A2.PIX_DATE 

は、ここでテーブルIDCASE00_EXTRACT

id_sku     id_ty  
301110 39 8    3266   
301110 39 8    1788   
301112 90 1    4   
301185 20 6    6580   
301185 20 6    22028  

のためのいくつかのデータであるテーブルPX_CLEANのためのいくつかのデータ

pix_sku   pix_date 
301110 39 8  20120203 
301112 90 1  20120204 
301185 20 6  20120320 
301110 39 8  20120301 
301185 20 6  20120209 
+0

いくつかのサンプルデータを使用して2つのテーブルを個別に転記できますか? – Teja

+0

私はあなたの質問で次の問題を見ることができます:1.あなたのデータの例は1つだけのテーブルを示しますが、クエリは2つを参照します。 2つの異なるデータベースシステム(MySQLとSQL Server)に関連して質問をタグ付けしました。それは目的に過ぎなかったのか、 'mssql'のために' mysql'と間違っていましたか? 3.列に適用できるかのように 'DISTINCT'を使用しています。列には適用できません。 DISTINCTは、引っ張っている列の行全体に常に適用されます。 –

+0

Venk、私は2つのテーブルを掲示しました。 – jorame

答えて

5

があなたの参加であるという問題である... IDCASE00_EXTRACT

、 2つの行があります。id_sku = 301110 39 8です。

PX_CLEANには、pix_sku = 301110 39 8という2つの行もあります。

したがって、id_sku = pix_skuに参加すると、4行(2 * 2)が生成されます。

したがって、2つのテーブルを結合する一致は現在ユニークではありません。IDCASE00_EXTRACTの日付はpix_dateと一致するはずですPX_CLEAN

+0

いいえ、残念ながらIDCASE00_EXTRACTに日付がありません – jorame

2

このクエリはあなたに、各SKUの合計を取得する必要があります

SELECT Q.ID_SKU, SUM(Q.ID_qty) AS TOTAL 
FROM IDCASE00_EXTRACT AS Q 
GROUP BY Q.ID_SKU 

をあなたはpix_dateで何をするつもりですか?このデータにはどのような用途がありますか?あなたは私が考えることができることを得ることができます

唯一の他の情報は次のとおりです。

SELECT T.ID_SKU, T.TOTAL, PX.pix_date 
FROM 
    ( 
    SELECT Q.ID_SKU, SUM(Q.ID_qty) AS TOTAL 
    FROM IDCASE00_EXTRACT AS Q 
    GROUP BY Q.ID_SKU 
    ) 
    AS T JOIN PX_CLEAN AS PX ON (T.ID_SKU = PX.pix_sku) 

とにかく、あなたが取得したい情報を明確する必要があります。

+0

PIX_SKUの結果を得る必要があります.PIX_SKU、PIX_DATE、SUM(ID_QTY)を表示する必要があります。これが私の必要なものを明確にすることを願っています! – jorame

0

このクエリ:

SELECT pix_sku, SUM(id_qty) AS QuantityTotal 
FROM @PX_CLEAN AS P 
    JOIN @IDCASE00_EXTRACT AS Q ON (Q.id_sku = P.pix_sku) 
GROUP BY pix_sku 

は、それらの結果を取得します:

  • SKUを| TOTAL
  • 301110 39 8 | 10108
  • 301112 90 1 | 4
  • 301185 20 6 | 57216

各SKUごとに合計があります。

pix_dateから正確に何を取得しますか?集計するときにONE SKUのみがありますが、1つのSKUごとに複数の日付が残っています。あなたは何を得ようとしていますか?あなたは何を知りたいですか?

DISTINCT機能については考えないでください。この関数は、クエリ結果からまったく同じローのを削除するだけです。あなたが望む結果が得られた場合にのみ役立ちますが、同じ複数の行があります。クエリエンジンはあなたの望みを「理解」せず、集約(グループ化)によってのみ達成できる個別SKUごとに1行を返します。

関連する問題