- ベストアンサー
SQLでブランドコードがNullの金額を集計する方法を教えてください
- SQLでブランドコードがNullの金額をブランドコードが'01'の金額に日付をキーにして集計する方法を教えてください。
- どのようなテーブルでも、ブランドコードがNullの金額をブランドコードが'01'の金額に日付をキーにして集計する方法を教えてください。
- SQLにおいて、ブランドコードがNullの金額をブランドコードが'01'の金額に日付をキーにして集計する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Nullを01と同等とみなして、Nullを01以外も含めて日付とブランドコードをキーに集計したいのですか? それとも、Nullを01のみを対象とし、日付をキーに集計したいのですか? いずれにしても、確定しているのは、 group byに日付 sumは金額 です。 後者の場合、条件としては ブランドコード IsNull or ブランドコード = '01' まとめると、 select 日付 ,sum(金額) from tbl where ブランドコード IsNull or ブランドコード = '01' group by 日付 前者の場合は少しやっかいです。 tblの部分にselect句を書く事ができるタイプなら、一旦加工した状態を再selectしてやる事で実現できます。 select tmp.日付 ,tmp.ブランドコードX ,sum(tmp.金額) from ( select 日付 ,店舗コード ,ブランドコード ,金額 ,(if ブランドコード IsNull then '01' else ブランドコード) as ブランドコードX from tbl ) tmp group by tmp.日付 ,tmp.ブランドコードX ※ifの部分など、細かい構文はSqlに合わせて下さい。 ※fromにselect句を書く事ができないタイプの場合、また違った書き方になります。
その他の回答 (1)
- yamada_g
- ベストアンサー率68% (258/374)
nvl関数を使ってもいいと思います。 select 日付, nvl(ブランドコード,'01') ブランドコード, sum(金額) 合計金額 from t1 group by 日付, nvl(ブランドコード,'01')