解決済み

SQL 列名が無効です。

  • すぐに回答を!
  • 質問No.7335944
  • 閲覧数6376
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 81% (9/11)

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

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

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

  • 回答No.1

ベストアンサー率 60% (431/717)

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

お礼率 81% (9/11)

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

評価の順番が上から順ではないのですね。勉強になりました。
投稿日時 - 2012-03-01 13:16:48
感謝経済
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数によるOK-チップ配布スタート!

ピックアップ

ページ先頭へ