-3
最初の行または最後の重複する行に対して、複数の列にある重複する行(同じID、月、およびPerson)の値を合計しようとしています。次に、重複した行を削除して、合計値で1行を削除します。 最大の問題は、2つの異なる列で値を合計する必要があることがあることです。複数の列でsql sumの重複がある
PrimaryTable:
ID Month Person Value1 Value2
**123 1 Smith** 10 20
**123 1 Smith** 5 NULL
**123 1 Smith** NULL 5
123 2 Smith 10 5
**189 3 Murphy** NULL 15
**189 3 Murphy** NULL 10
190 2 Brown 25 25
**345 2 Lee** 25 20
**345 2 Lee** 25 20
結果1(期待される結果合計が最初のものに値を複製した後):
ID Month Person Value1 Value2
123 1 Smith **15** **25**
123 1 Smith 5 NULL
123 1 Smith NULL 5
123 2 Smith 10 5
189 3 Murphy NULL **25**
189 3 Murphy NULL 10
190 2 Brown 25 25
345 2 Lee **50** **40**
345 2 Lee 25 20
FinalTable(最初のものを除いて、重複を削除した後に期待される結果):
ID Month Person Value1 Value2
123 1 Smith **15** **25**
123 2 Smith 10 5
189 3 Murphy NULL **25**
190 2 Brown 25 25
345 2 Lee **50** **40**
私はこのコードで試しています:
SELECT ID, Month, Person, SUM(Value1), SumValue2
FROM
(
SELECT ID, Month, Person, Value1, SUM(Value2) AS SumValue2
FROM db.Hours
GROUP BY ID, Month, Person, Value1
)
GROUP BY ID, Month, Person, SumValue2
ただし、値2の合計を2倍にすることがあります。
これまで行っていた作業は表示されませんでした。これは、コード作成(またはクエリ作成)サービスではありません。質問を編集して、何をしたのか、どこに問題があるのかを表示します。 –
HInt: 'GROUP BY'。 –
最初または最後の行がありません。 – jarlh