- ベストアンサー
列名が無効とエラーが出ます。
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 としてもエラーは起きません。 原因が判らず困っています。 ご回答頂けると幸いです。宜しくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
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 の方が正しいということです。 抽出条件に列の別名を使うことは普通はできません。
お礼
ありがとうございます。ご指摘の通りsegyearはKado2にありました。 Where文をmonth(k.hiduke)=1にしたところ無事成功しました。 本日締め切りだったので、大変助かりました! ありがとうございます!!