1

前の期間の日付を見つける必要があります。たとえば、指定された月が 1 月 13 日から 3 月 13 日である場合、前の期間が 10 月 12 日から 12 月 12 日であることを計算できる必要があります。または、日付が 7 月 12 日から 6 月 13 日までの場合、7 月 11 日から 6 月 12 日までを計算する必要があります。したがって、基本的に x か月の期間については、その月を終了する x か月の別の期間を返す必要があります。指定された期間の前に。

日付は常に月の初日になるため、世界のどこにいるかによって、2012 年 6 月 1 日、2012 年 6 月 1 日、2012 年 1 月 6 日になります。

この SQL クエリは機能しますが、後で Left Join クエリに組み込むと問題が発生するようです (既存の質問を参照してください: Access 2007 - Left Join to a query returns #Error instead of Null )

SELECT DATEADD("m",
1-(1+MONTH(QueryDates.EndDate)-MONTH(QueryDates.StartDate)+
    (12*(YEAR(QueryDates.EndDate)-YEAR(QueryDates.StartDate)))),
DATEADD("m",-1,QueryDates.StartDate)) AS StartDatePrevious, 
DATEADD("m",-1,QueryDates.StartDate) AS EndDatePrevious
FROM QueryDates;

私が座っている場所からは少しクレイジーに見えるので、このタスクを達成するためのより簡単な方法はありますか? または、後で Access を混乱させる可能性のある SQL に何か問題がありますか?

4

2 に答える 2