質問: access2010で直近の日付を取得したいのです お世話になっています access2010で以下のことがやりたいのです 2つのテーブル「カレンダー」と「データ」があります データの中には「no」と「指定日」というフィールドがあります データ no 指定日 9364 2012/08/06 9365 2012/08/10 9366 2012/08/11 9367 2012/08/12 カレンダーの中には「日付」と「日祭」というフィールドがあります カレンダー 日付 日祭 2012/08/04 0 2012/08/05 1 2012/08/06 0 2012/08/07 0 2012/08/08 1 2012/08/09 1 2012/08/10 1 2012/08/11 1 2012/08/12 0 「データ」テーブルを元にして作ったクエリーで、新たに追加した出荷日フィールドに、同じレコードの指定日よりも小さく、かつカレンダーテーブルで「日祭」にはいっている「1」を抜かした直近の日付を表示させたいのです その日付が「0」の場合はそのままの日付をとります それぞれの出荷日は以下のようにしたいのです データ クエリ no 指定日 出荷日 9364 2012/08/06 2012/08/04 9364 2012/08/10 2012/08/07 9345 2012/08/11 2012/08/07 9372 2012/08/12 2012/08/12 これはどのようにしたらできるのでしょうか 大変困っています 教えていただけると助かります
回答: sqlビューですと select [データ].番号, [データ].指定日 ,(select max(日付) from カレンダー where カレンダー.日祭=0 and カレンダー.日付 < データ.指定日 ) as 出荷日 from データ; とかで。 なお、 >同じレコードの指定日よりも小さく、 >かつカレンダーテーブルで「日祭」にはいっている「1」を抜かした直近の日付 なので、 9372 2012/08/12 2012/08/12 → 2012/08/07 なのでは? >その日付が「0」の場合はそのままの日付をとります が正解なら、9364 2012/08/06 2012/08/04 → 2012/08/06 でしょうし? あと、[no]はaccessの予約語なので[番号]に替えてあります。