Microsoft Access 掲示板

クエリを使って条件に当てはまる日付を抽出したい / 9

10 コメント
views
4 フォロー
9

※ 続き

SELECT x.リマインダーID
     , z.日付
     , Weekday( z.日付 )         As 曜日番号
     , ( Day( z.日付 ) + 6 ) \ 7 As 週番号
FROM T_リマインダー  x
   , T_条件          y
   , T_日付          z
WHERE x.リマインダーID  =  y.リマインダーID
  AND x.開始年         <=  Year( z.日付 )
  AND x.終了年         >=  Year( z.日付 )
  AND y.対象月_from    <=  Month( z.日付 ) 
  AND y.対象月_to      >=  Month( z.日付 )
  AND y.週番号_from    <=  ( Day( z.日付 ) + 6 ) \ 7
  AND y.週番号_to      >=  ( Day( z.日付 ) + 6 ) \ 7
  AND y.曜日番号_from  <=  Weekday( z.日付 )
  AND y.曜日番号_to    >=  Weekday( z.日付 )
  AND (
           ( x.リマインダー種別 = 2 AND y.日番号 = 0 )
        OR
           ( x.リマインダー種別 = 1 
               AND
             z.日付 = 
                 DateSerial( Year( z.日付 - y.日番号 ), 
                             Month( z.日付 - y.日番号 ) + 1, y.日番号 ) 
           )
      )
ORDER BY 1, 2 ;

結果 ( 一部抜粋 )

リマインダーID日付曜日番号週番号
12019/01/1272
12019/01/2674
22019/01/2013
22019/02/1713
32019/01/0461
32019/01/0721
42019/01/1052
42019/01/3155
42019/02/1012
42019/02/2854
52019/03/0421
52019/03/1122
52019/04/0121
52019/04/0822
62019/10/2234
通報 ...