where条件の値を動的に指定したいです。
具体的には、現在8月~来年の7月までであれば、WhereのSQLが「受付日<2013年8月1日」となり
来年の8月~再来年の7月であれば、WhereのSQLが「受付日<2014年8月1日」となるような動的に
かわるWhereの条件をつくるにはどうしたらよいでしょうか。
RDBMSはとりあえずAccessでできると助かります。。
が、Accessがという場合は、oracleやmysql、postgresでも読みかえますのでOKです。
受付日は日付型になります。
Access用
SELECT * FROM テーブル WHERE 受付日 < DateSerial( Year(Now()) - IIF(Month(Now())<8, 1, 0), 8, 1)
現在日が8月以前なら年から1を引いて前年8月1日という式にしてあります。
DateSerialは年,月,日の数値データを日付型に直す関数です。
Nowは現在日時
YearとMonthはそれぞれ年と月の抽出
IIFは条件分岐
多くのRDBMSには変数が用意されているので、それを使えばできます。
http://ap.atmarkit.co.jp/bbs/core/fdb/26022
はいー。ありがとうございましたー!
Access用
SELECT * FROM テーブル WHERE 受付日 < DateSerial( Year(Now()) - IIF(Month(Now())<8, 1, 0), 8, 1)
現在日が8月以前なら年から1を引いて前年8月1日という式にしてあります。
DateSerialは年,月,日の数値データを日付型に直す関数です。
Nowは現在日時
YearとMonthはそれぞれ年と月の抽出
IIFは条件分岐
即レスありがとうございました!!
ナットクです~
即レスありがとうございました!!
2013/08/24 21:29:52ナットクです~