gpt4 book ai didi

sql - 在一个存储过程中输入缺失的月份并计算运行总计

转载 作者:行者123 更新时间:2023-12-02 12:56:46 25 4
gpt4 key购买 nike

如何从此表中选择数据

Yr     Month    El1       Value    
---- ------ ------- ------

2017 2 AT010 100
2017 3 AT010 100
2017 4 AT010 50
2017 5 AT010 150
2017 3 BE020 10
.......

并按以下方式将其插入到另一个表中

Yr     Month    El1       Value    
---- ------ ------- ------

2017 0 AT010 0
2017 1 AT010 0
2017 2 AT010 100
2017 3 AT010 200
2017 4 AT010 250
2017 5 AT010 400
2017 6 AT010 400
2017 7 AT010 400
2017 8 AT010 400
2017 9 AT010 400
2017 10 AT010 400
2017 11 AT010 400
2017 12 AT010 400
2017 0 BE020 0
2017 1 BE020 0
2017 2 BE020 0
2017 3 BE020 10
2017 4 BE020 10
2017 5 BE020 10
2017 6 BE020 10
2017 7 BE020 10
2017 8 BE020 10
2017 9 BE020 10
2017 10 BE020 10
2017 11 BE020 10
2017 12 BE020 10

.......

我正在尝试插入从 0 到 12 的缺失月份并同时计算运行总计。我用过this运行总计计算的建议;但是,我不知道如何输入缺失的月份。该代码将在日常 ETL 作业的存储过程中使用。

最佳答案

嗯。 。 。生成行,然后使用 left joinouter apply 引入值。这是一种方法:

with yyyymm as (
select 2017 as yr, 1 as mom
union all
select yr, mon + 1
from yyyymm
where mon + 1 <= 12
)
select yyyymm.yr, yyyymm.mon, coalesce(e.el1, 0) as el1
from yyyymm cross join
(select distinct el1 from t) e outer apply
(select sum(t.value)
from t
where t.el1 = e.el1 and
t.yr = yyyy.yr and
t.month <= yyyy.mon
) tt
order by e.el1, yyyy.yr, yyyy.month;

关于sql - 在一个存储过程中输入缺失的月份并计算运行总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46054906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com