こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CASE文について

<環境>
SQLSERVER2005
ACCESS2007

CASE文について質問です。
クエリで下記のSQL文を実行すると、「Case 式は、10 レベルまでしか入れ子にできません。」
とエラーになります。
このような場合、どのように記述すれば解決できるでしょうか?
ご教授お願いします。

SELECT
CASE WHEN (WA.MM = '01') THEN ROUND(SUM(WB.MONEY1), -3, 0)
ELSE CASE WHEN (WA.MM = '02') THEN ROUND(SUM(WB.MONEY2), -3, 0)
ELSE CASE WHEN (WA.MM = '03') THEN ROUND(SUM(WB.MONEY3), -3, 0)
ELSE CASE WHEN (WA.MM = '04') THEN ROUND(SUM(WB.MONEY4), -3, 0)
ELSE CASE WHEN (WA.MM = '05') THEN ROUND(SUM(WB.MONEY5), -3, 0)
ELSE CASE WHEN (WA.MM = '06') THEN ROUND(SUM(WB.MONEY6), -3, 0)
ELSE CASE WHEN (WA.MM = '07') THEN ROUND(SUM(WB.MONEY7), -3, 0)
ELSE CASE WHEN (WA.MM = '08') THEN ROUND(SUM(WB.MONEY8), -3, 0)
ELSE CASE WHEN (WA.MM = '09') THEN ROUND(SUM(WB.MONEY9), -3, 0)
ELSE CASE WHEN (WA.MM = '10') THEN ROUND(SUM(WB.MONEY10), -3, 0)
ELSE CASE WHEN (WA.MM = '11') THEN ROUND(SUM(WB.MONEY11), -3, 0)
ELSE CASE WHEN (WA.MM = '12') THEN ROUND(SUM(WB.MONEY12), -3, 0)
END
END AS MONEY
FROM
(WA INNER JOIN WB ON (WA.YYYY = WB.YYYY))
INNER JOIN WC ON (WA.YYYY = WC.YYYY)

投稿日時 - 2009-05-12 11:00:53

QNo.4952198

すぐに回答ほしいです

質問者が選んだベストアンサー

CASE WA.MM
  WHEN '01' THEN ~
  WHEN '02' THEN ~
  WHEN '03' THEN ~
=中略=
END

投稿日時 - 2009-05-12 11:19:40

お礼

ありがとうございます。
無事処理を終わらせることができました。

投稿日時 - 2009-05-13 19:41:23

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問