2017-09-19 10 views
1

これで私を助けることができるかどうかわかりません。 Part_Locationsという表があります。この表にはPart_ID,Location IDおよびQTYのリストが含まれています。追加すると、その固有の値を表示するための合計の列

私はParts By Locationという報告書を作成しましたが、今ではその部分の手元にあるものはどれかを知りたいと考えています。

私が試した:

SELECT part_id,qty, SUM(qty) 
FROM part_location 
GROUP BY part_id 

をしかし、それは返します

Msg 8120, Level 16, State 1, Line 1 
Column 'part_location.QTY' is invalid in the select list because it is not 
contained in either an aggregate function or the GROUP BY clause. 

私がしようとすると:

SELECT part_id, SUM(qty) 
FROM part_location 
GROUP BY part_id 

私はQTYを合計し得るが、その後、私はどのように多くの部分での視認性を失います各場所にあります。私が達成しようとしています何

enter image description here

+1

あなたのクエリを共有してもらえますか? –

+0

あなたの質問を編集して[これまでに行ったコード](http://whathaveyoutried.com)を表示してください。問題を抱えているコードのアウトライン(ただし、好ましくは[mcve])を含める必要があります。次に、特定の問題を解決することができます。 [ask]も読んでください。 –

答えて

1

あなたはあなたのクエリこのような

SUM(qty) OVER(PARTITION BY part_id) SumQty 

の一部を選択するには、このウィンドウの機能を追加することができます。

SELECT 
    part_id, 
    qty, 
    SUM(qty) OVER(PARTITION BY part_id) SumQty 
FROM part_location 
0

集計クエリは不要です。あなたは、ウィンドウ関数を使用したい:

SELECT part_id, qty, SUM(qty) OVER (PARTITION BY part_id) 
FROM part_location ; 
0

私はこのクエリの主な概念の問題は、あなたが返された結果セットでqtySUM(qty)を混合していることだと思います。 qtyを削除し、あなたは

+0

さて、私の問題は、ユーザーが両方を見たいと思ったことです。 –

0

問題ないはずですが、このようにしてみてください:

SELECT 
pl.part_id, 
pl.qty, 
(SELECT SUM(p.qty) FROM part_location p WHERE p.part_id = pl.part_id) 
FROM part_location pl 
関連する問題