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

解決済みの質問

SQL 列名が無効です。

Microsoft SQL Server Management Studio 2008 にて、SQLを作成しています。

入金テーブルに下記の2項目が入力されています。

1.通貨 2.額 

通貨は円とドルしか存在しません。

そして10万円相当以降の通貨と額だけを抜きとりたいのです。

私が作成したSQLは、

SELECT CASE WHEN 入金テーブル.通貨 = 'ドル' THEN
入金テーブル.額 * 80 (為替レート1ドル80円の場合)
  ELSE
入金テーブル.額 END As 入金額

FROM 入金テーブル
WHERE 入金額 > 100000

別名の入金額が値として認められないのが、問題だと思いますが、
どうしたらいいのでしょうか?
よろしくお願いします。

投稿日時 - 2012-03-01 11:35:55

QNo.7335944

すぐに回答ほしいです

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

where句はselect句より先に評価されるためです。
SELECT 入金額
from (
SELECT CASE WHEN 入金テーブル.通貨 = 'ドル' THEN
入金テーブル.額 * 80 (為替レート1ドル80円の場合)
  ELSE
入金テーブル.額 END As 入金額
FROM 入金テーブル )
WHERE 入金額 > 100000

投稿日時 - 2012-03-01 12:04:13

お礼

早速のご回答、ありがとうございました。

評価の順番が上から順ではないのですね。勉強になりました。

投稿日時 - 2012-03-01 13:16:48

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

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

-広告-
-広告-

回答(1)

-広告-
-広告-
-広告-
-広告-