人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

sqlの質問です。

where条件の値を動的に指定したいです。

具体的には、現在8月?来年の7月までであれば、WhereのSQLが「受付日<2013年8月1日」となり
来年の8月?再来年の7月であれば、WhereのSQLが「受付日<2014年8月1日」となるような動的に
かわるWhereの条件をつくるにはどうしたらよいでしょうか。

●質問者: FujiiRock
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

質問者から

RDBMSはとりあえずAccessでできると助かります。。
が、Accessがという場合は、oracleやmysql、postgresでも読みかえますのでOKです。
受付日は日付型になります。


1 ● だわかき
●0ポイント

多くのRDBMSには変数が用意されているので、それを使えばできます。
http://ap.atmarkit.co.jp/bbs/core/fdb/26022


FujiiRockさんのコメント
はいー。ありがとうございましたー!

2 ● うぃんど
●100ポイント ベストアンサー

Access用

SELECT *
FROM テーブル
WHERE 受付日 < DateSerial( Year(Now()) - IIF(Month(Now())<8, 1, 0), 8, 1)

現在日が8月以前なら年から1を引いて前年8月1日という式にしてあります。

DateSerialは年,月,日の数値データを日付型に直す関数です。
Nowは現在日時
YearとMonthはそれぞれ年と月の抽出
IIFは条件分岐


FujiiRockさんのコメント
即レスありがとうございました!! ナットクです?
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ