我需要计算与本月第一天的快照日期相对应的BLACKLOG_M值。在每月的每一行重复它成为恒定值
如图所示:
SELECT T1.SNAP, T1.PERI, T1.ANNEE, T1.MOIS, T1.[BCKL], T2.[BCKL] AS BCK2,[NBR1]
,[NBR2]
FROM stg.FACTSALES AS T1 LEFT OUTER JOIN
(SELECT YEAR(SNAP) AS ANNEE, MONTH(SNAP) AS MOIS, [BCKL]
FROM stg.FACTSALES
WHERE (DAY(SNAP) = 1)) AS T2 ON T2.ANNEE = T1.ANNEE AND T2.MOIS = T1.MOIS
脚本返回正确的值,但是还有其他最佳想法或改进之处吗?
答案 0 :(得分:1)
您要将值从每月的第一天复制到该月的剩余时间。那应该是可能的。
select fs.*,
(case when day(snapdate) = 1
then max(case when day_snapdate() = 1 then backlog_m end) over (partition by year_month)
end) as backlog_m_1
from stg.FACTSALES fs;
这也会在第一天分配值。不清楚您想要该值是什么。