わかりました、これができるはずだと思いますが、無駄に検索しました。
今日が何曜日であるかに応じて、2 つの異なるデータ セットのいずれかを表示する必要があります。具体的には、今日が 10 月 31 日 (またはそれ以前) の場合、昨年の 10 月 1 日から今年の終わりまでのすべてのエントリをプルしたいと考えています。今日が 10 月 31 日より後の場合、データ セットに今年の 10 月 1 日から翌年末までのエントリが表示されるようにします。
以下のコードは、特定のデータセットに存在するすべての月を格納する単純な「カレンダー」テーブル変数を作成しています。現在、私はそれを今年の日付に限定しています。上記のように機能できるように、それをコードに置き換えたいと思います。IF文を使おうと思ったのですが、getdate()で日と月だけ比較する方法がわかりません。
DECLARE @calendar TABLE
( mon_name VARCHAR(10)
, mon_number INT
, yr INT
)
INSERT INTO @calendar
SELECT DATENAME(m,departure_date)
, MONTH(departure_date)
, YEAR(departure_date)
FROM trip_mission
WHERE departure_date <>'1/1/1900'
AND YEAR(departure_date) = YEAR(getdate())
GROUP BY DATENAME(m,departure_date)
, MONTH(departure_date)
, YEAR(departure_date)
質問の単純化された形式は、今日が <= 10 月 31 日である場合にのみコードを実行するにはどうすればよいかということかもしれません。毎年ひっくり返る。