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

解決済みの質問

列名が無効とエラーが出ます。

SQLServe2000でビューを作成していて困っています。
問題のSQL文は
SELECT
k.hiduke,
year(k.hiduke) as segyear,
month(k.hiduke) as segmonth
from dbo.S_View_kado2 as k
where segmonth=1

上記SQLを実行すると
列名'segmonth'は無効です
とエラーが発生します。where文を削除するとエラーは出ません。
where文を where segyear=2009
としてもエラーは起きません。
原因が判らず困っています。

ご回答頂けると幸いです。宜しくお願いいたします。

投稿日時 - 2009-02-05 19:26:52

QNo.4692207

すぐに回答ほしいです

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

View「dbo.S_View_kado2」にsegyearというフィールドだけはあるのではないですか?
そうでなければ確かに変ですが、確実に言えるのは、一般的なSQL文の書き方としては、
SELECT
k.hiduke,
year(k.hiduke) as segyear,
month(k.hiduke) as segmonth
from dbo.S_View_kado2 as k
where month(k.hiduke)=1
の方が正しいということです。

抽出条件に列の別名を使うことは普通はできません。

投稿日時 - 2009-02-05 19:40:14

お礼

ありがとうございます。ご指摘の通りsegyearはKado2にありました。
Where文をmonth(k.hiduke)=1にしたところ無事成功しました。
本日締め切りだったので、大変助かりました!
ありがとうございます!!

投稿日時 - 2009-02-06 09:11:04

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

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

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-