ASで指定した項目名をGROUP BYやORDER BYで使用する方法。
ただいまSQLの勉強をしています。
タイトルどおりなのですが、ASで指定した項目名をGROUP BYやORDER BYで使用する方法はあるのでしょうか?
CASE文を使用したこちらのSQL文↓で、SELECT文、GROUP BY句、ORDER BY句の中に重複する部分が多く出てしまうのでどうにかすっきりさせたいと思い、独自に調べたり色々と試したのですがわからず、質問させていただきました。
お分かりになる方、いらっしゃいましたらご助言どうぞよろしくお願いいたします。
<SQL文>
SELECT CASE WHEN trancd % 3 = 1 THEN '購入番号(1,4,7,…)の集計'
WHEN trancd % 3 = 2 THEN '購入番号(2,5,8,…)の集計'
ELSE '購入番号(3,6,9,…)の集計'
END AS グループ名称
, sum(suryo) AS 数量合計
FROM tran
GROUP BY CASE WHEN trancd % 3 = 1 THEN '購入番号(1,4,7,…)の集計'
WHEN trancd % 3 = 2 THEN '購入番号(2,5,8,…)の集計'
ELSE '購入番号(3,6,9,…)の集計'
END
ORDER BY CASE WHEN trancd % 3 = 1 THEN '購入番号(1,4,7,…)の集計'
WHEN trancd % 3 = 2 THEN '購入番号(2,5,8,…)の集計'
ELSE '購入番号(3,6,9,…)の集計'
END;
お礼
ご回答ありがとうございました。 case文をご提示いただきましたことをきっかけに、 iif文を知り、「iif(値段 < 100 ,0,1)」とすることで解決しました。 どうも有り難うございました。
補足
後出しですみません、実はAccess(2003)にて作っています。 「構文エラー:演算子がありません」と出ます。 ACCESSはcase文使えないのでしょうか?