- ベストアンサー
年と月が別カラムの場合のSQL
あるテーブルから、指定した期間のデータを抽出したいのですが、うまく取れません。 テーブル:RecData SortID iYear iMonths Amount -------------------------------------------- 1 2002 3 100 1 2002 4 113 : : : : 1 2008 7 112 1 2008 8 102 2 2002 3 40 2 2002 4 34 : : : : 2 2008 7 43 2 2008 8 41 上記のようなテーブルがあるのですが、すべて数値型です。 このテーブルから、「SortIDが1で、2002年5月から2003年4月のデータ」を検索するにはどのようにしたら良いでしょうか? 「Select * from RecData Where SortID = 1 And iYear = 2002 And iMonths >= 5 Or SortID = 1 And iYear = 2003 And iMonths <= 4」 のようなやり方だと、「2002/04から2005/03」のような期間は正しく取れません。 その場合は1年づつループしなければ取れないでしょうか。 よろしくお願い致します。 使用しているDBはSQLServer2000 で、VBからSQL文を作成しています。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#7749
回答No.3
その他の回答 (6)
noname#7749
回答No.7
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.6
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.5
noname#7749
回答No.4
- tsukasa-12r
- ベストアンサー率65% (358/549)
回答No.2
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.1
お礼
どんな評価方法でも取れれば良いです。 なのでCASTより四則演算の方が簡単ですね。 しかもConvertも使わなくてすむし…。 実際に書いてやってみましたが、四則演算で取れてしまうし。 今まで取れなかった数年にまたがった期間もバッチリですね。 チューニングと称して予算を請求する戦略で、設計時に年と月が別で日付型にしなかったなんてことは…ないよなぁ…。今から「チューニング」するとVB側のSQL文を全部書き直しになるから違うでしょうねぇ。 ありがとうございます。