|
▼buti さん:
こんにちは。
計算の速度までは考慮しておりませんが、とりあえずの解決方法を。
加入月数に使われていた「起算取得日」「起算喪失日」を
そのまま式にあてはめてあります。
加入月数:
DateDiff("m",IIf([取得日]>DateSerial(Year(DateAdd("m",-3,Now())),4,1),
[取得日],
DateSerial(Year(DateAdd("m",-3,Now())),4,1)),
IIf([喪失日]<DateSerial(Year(DateAdd("m",9,Now())),3,31),
[喪失日],
DateSerial(Year(DateAdd("m",9,Now())),3,31)))+1
これなら抽出条件を付けてもパラメータを聞かれないと思います。
-----(別方法)-------
クエリのSQLビューに下記SQLを貼り付けてみてください。
元テーブルは「T_buti」としております。
SELECT Q.取得日, Q.喪失日, Q.起算取得日, Q.起算喪失日,
DateDiff("m",[起算取得日],[起算喪失日])+1 AS 加入月数
FROM [
SELECT T_buti.取得日, T_buti.喪失日, IIf(Month(T_buti.取得日)>3,
T_buti.取得日,CDate(Year(取得日) & "/4/1")) AS 起算取得日,
IIf(T_buti.喪失日<DateSerial(Year(DateAdd("m",9,Now())),3,31),
T_buti.喪失日,
DateSerial(Year(DateAdd("m",9,Now())),3,31)) AS 起算喪失日
FROM T_buti
]. AS Q
WHERE (((DateDiff("m",[起算取得日],[起算喪失日])+1)<=11));
|
|