2011-10-21 8 views
0

私はleft joinGroup Byという節を束ねたテーブルをたくさん用意しています。T-SQLの異なるグループ間でフィールドを集計する方法

しかし、group-byであるが、別個のままである(productNumber)1つの列が存在する。

salesID historyID productID name productNumber quantity 
     1  123   1  A   234554  10 
     1  123   1  A   666666  10 

私だけ最初のレコードが、10 + 10 = 20の量にしたい:

は、私は以下の数量の列を合計する必要があります。

最初のレコードはフラグmainNumber = 1を持ち、2番目のレコードはmainNumber = 0を持ちますが、その列はSELECTには表示されません。

つまり、数量を合計したいと思いますが、mainNumber = 1のproductNumberのみを表示します。

どうすればよいですか?

ありがとうございます!

答えて

1

私が正しく質問を理解している場合、これはあなたを助けるかもしれない:私は理解し...あなたが最初の行だけをしたいが、どの値がproductNumber列である必要があり、結果セットでは

SELECT salesID, historyID, productID, name, productNumber, total.quantity 
FROM table1 
JOIN (
    SELECT salesID, SUM(quantity) AS quantity FROM table1 GROUP BY salesID 
    ) AS total 
ON table1.salesID = total.salesID 
WHERE mainNumber=1 
+0

これは私が必要としていたものですが、少なくとも私は正しい方向に動いています。どうもありがとう。 – John

0

全くわかりません?

値がほぼ同じ場合は、GROUP BY productNumber(行を区別する)ではなく、集計してください。 MINまたはMAXで

関連する問題