0
即使在某些月份沒有數據,我仍使用LEFT JOIN表日曆帶來月份列。它可以工作,如果我說tblCalendar.Year = 2016
,所以它會爲我帶來今年的所有12個月。 但是我需要從本月底開始的一年數據。 所以我使用的數據範圍如何根據年份和月份動態檢索一年前(下個月)到當月月底的所有數據
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())'? 不會迴歸一天嗎?所以我們基本上只是要求當前的月份? – DrSatan1
'EOMONTH(GETDATE())'帶來本月末 – Oleg
,所以日期範圍應該從去年9月到今年8月底 – Oleg