SQLServerのビューを利用して集計用のビューを作成しています。
WHERE句で一部の条件を外した所までは行けたのですが、IF文のような判断を追加したいんですが、書き方がわかりません。(出来るのかすら分かりませんが…)
以下のようなテーブルから、[コード]でグループ化、条件で[削除]をFalseのみ、までは行けました。
|コード|製品名|受注数|再検品|枝番|削除|
|:--|:--:|--:|--:|
|123|エビ|300|0|1|False|
|456|カニ|300|0|1|False|
|789|ウニ|300|0|1|False|
|123|エビ|400|0|2|False|
|123|エビ|450|1|2|False|
|456|カニ|600|0|2|True|
|789|ウニ|700|0|2|False|
SQL
1SELECT MAX(コード) AS コード, MAX(製品名) AS 製品名, SUM(受注数) AS 受注数 2FROM 受注テーブル 3WHERE 削除 = 'False' 4GROUP BY コード
コード | 製品名 | 受注数 |
---|---|---|
123 | エビ | 1150 |
456 | カニ | 300 |
789 | ウニ | 1000 |
しかしこの文だと、再検品を追加すると前の分も加算されてしまうので、
グループ内の[コード]と[枝番]が同じで[再検品]に「0」と「1」があった場合、「0」の行は除き「1」の行を集計に入れるという事がしたいです。
何か良い方法はありますでしょうか?
理想形↓
コード | 製品名 | 受注数 |
---|---|---|
123 | エビ | 750 |
456 | カニ | 300 |
789 | ウニ | 1000 |
###環境
Windows Server 2012R2
SQL Server 2012
回答3件
あなたの回答
tips
プレビュー