SQL。項目内のフラグを判断して、SUMしたい。
やりたいこととしては、ymdとnoとidで一つにデータをまとめ、
各レコードの持つフラグ(a,b)の状態次第(両方trueならば)で、
SUMする項目(num1,num2)を適切に変更したいです。
下記みたいな感じでやってみたものの、まとめ方が悪いらしく期待した答えが出せません。
(何だかんだいじってみても同様、そして、張り付けたSQLは多分エラー。)
考え方が悪いのか、やり方が悪いのか、どなたかご教示いただきたく、よろしくお願いします。
----------------------------------------
実行SQL
select
ymd,no,id,
SUM(
case
when max(a) and max(b)
then
num1
else
num2
end
)
abc
from
(
select
'20180423' ymd,1 no,1 id,true a,true b,100 num1,300 num2
union
select
'20180423' ymd,1 no,1 id,false a,true b,200 num1,400 num2
union
select
'20180424' ymd,1 no,1 id,false a,false b,300 num1,500 num2
union
select
'20180424' ymd,1 no,1 id,true a,true b,400 num1,600 num2
union
select
'20180424' ymd,1 no,2 id,false a,true b,500 num1,700 num2
)table_1
group by ymd,no,id
----------------------------------------
期待している答え
ymd,no,id,abc
20180423,1,1,500
20180424,1,1,900
20180424,1,2,700
----------------------------------------