Microsoft Access 掲示板

動的に過去数カ月間の平均値を算出するクエリ / 2

7 コメント
views
4 フォロー
2

私も名前なしさんと同様のSQLにします。
名前なしさんと同じロジックですが、、、

PARAMETERS 基準日を入力してください DateTime;
SELECT
 氏名,
 Round(Avg(時間),1) AS 6ヶ月平均,
 Round(Avg(IIf(対象月>=DateAdd('m',-4,[基準日を入力してください]),時間,Null)),1) AS 5ヶ月平均,
 Round(Avg(IIf(対象月>=DateAdd('m',-3,[基準日を入力してください]),時間,Null)),1) AS 4ヶ月平均,
 Round(Avg(IIf(対象月>=DateAdd('m',-2,[基準日を入力してください]),時間,Null)),1) AS 3ヶ月平均,
 Round(Avg(IIf(対象月>=DateAdd('m',-1,[基準日を入力してください]),時間,Null)),1) AS 2ヶ月平均,
 Round(Avg(IIf(対象月=[基準日を入力してください],時間,Null)),1) AS 当月
FROM 労働時間データ
WHERE [対象月] Between DateAdd('m',-5,[基準日を入力してください]) And [基準日を入力してください]
GROUP BY 氏名;

変更点。

  • PARAMETERS でデータ型を日付/時刻型に指定することで、日付以外の入力を拒否する。
  • WHERE で絞り込んでいるので、IIfの条件は>=だけでいい。
通報 ...