月の一部のデータがなくてもLEFT JOINテーブルカレンダーを使用して月の列を取得しています。私がtblCalendar.Year = 2016
と言うなら、それは今年12ヶ月すべてを持ってくるでしょう。 しかし、私は今月末から年にデータが必要です。 は、だから私はそれは私に何をもたらすのdoesnt何らかの理由でデータ範囲今年の終わりから年月に至るまでの1年前(次月)のデータをすべて動的に取得する方法
where cal.YearNum >= YEAR(GETDATE())-1 AND cal.YearNum <=YEAR(GETDATE())
AND cal.MonthNum >=MONTH(EOMONTH(GETDATE()))+1 AND cal.MonthNum <=MONTH(GETDATE())
バールを使用しています。 このようなクエリ:
with cte_Data
AS (
select Month(effectiveDate) as MonthNum
Year(EffectiveDate) as YearNum
from MyTable
where EffectiveDate >=DateAdd(yy, -1, DATEADD(d, 1, EOMONTH(GETDATE()))) AND EffectiveDate <= EOMONTH(GETDATE())
)
select *
from tblCalendar cal left join cte_Data cd ON cal.MonthNum=cd.ClrEffMonth AND cal.YearNum=cd.ClrEffYear
where cal.YearNum >= YEAR(GETDATE())-1 AND cal.YearNum <=YEAR(GETDATE())
AND cal.MonthNum >=MONTH(EOMONTH(GETDATE()))+1 AND cal.MonthNum <=MONTH(GETDATE())
どうすればこれらの日付を操作できますか? 私のテーブルカレンダー構造:
は ''そのEOMONTH(GETDATE())をアップ何ですか? 1日に帰りませんか?基本的には今月を頼んでいるのですか? – DrSatan1
'EOMONTH(GETDATE())'は現在の月の末尾を返します – Oleg
したがって、日付範囲は今年の8月の去年の9月から今年の8月の終わりまでです – Oleg