我正在计算积压y-1。我使用与-12月的第一天的Snapdate对应的BACKLOG_M的值。 例如:对于2018年1月的每个Snapdate,我们将检索Snapdate 2017年2月1日的值。 Excel screenshot
我尝试了以下脚本,但它返回错误值[stg]。[CMA_SALES_KPI]和dbo.CMA_SALES_KPI_Daily包含期间日期。 Data_Bckl包含每个日期的积压值。
SELECT T22.ANNE, T22.MOIS, T3.BCKL AS BCK3
FROM (
select
convert(nvarchar(6), dateadd(month, - 11, convert(datetime, SNAP)), 112) as PERI,
year(SNAP) as ANNE,
month(SNAP) as MOIS
from
[stg].[CMA_SALES_KPI]
where
day(SNAP) = 1
union
select
convert(nvarchar(6), dateadd(month, - 11, dateadd(month, -1, min(SNAPDATE))), 112) as PERI,
min([YEAR]) as ANNE,
min([MONTH]) as MOIS
from
dbo.CMA_SALES_KPI_Daily
) AS T22 LEFT OUTER JOIN
Data_Bckl AS T3 ON CONVERT(nvarchar(6), T3.SNAP, 112) = T22.PERI
答案 0 :(得分:0)
以月初和前一年为条件使用自我加入:
select t1.*, t2.backlog_m
from mytable t1
left join mytable t2
on DATEADD(month, DATEDIFF(month, 0, t1.snap), 0) -- first of this month
= dateadd(year, -1, DATEADD(month, DATEDIFF(month, 0, t2.snap), 0)) -- first of this month last year