这可能已经被回答了,但是我找不到我所需的正确搜索词。我们按月初的年/期间存储值(BOM)。一个月的物料清单与上个月的月末(EOM)值相同。我需要一种报告这种情况的方法。 因此2018-02 BOM = 2018-01 EOM。
我认为我也许可以使用一些简单的方法,但是由于这些字段是数字字段,因此它不能解决12个月的月/年换行。
select yr as YEAR, (pd-1) as PERIOD, sum(BOM) as EOM
from Table1
where type = '3'
group by yr, pd
order by yr desc, pd desc
这适用于中间月份,但不适用于1月,即1月,即2018-0,而不是2017-12。
Example Data
Yr Pd Type BOM
18 02 3 100
18 02 3 100
18 02 2 200
18 02 2 100
18 01 3 100
18 01 3 100
18 01 2 200
18 01 2 100
18 01 3 100
18 01 2 300
17 12 3 100
17 12 3 200
17 12 2 300
17 12 3 200
17 12 2 100
17 11 3 300
17 11 2 400
17 11 3 400
17 11 2 100
所以我要寻找的结果是:
Yr Pd EOM
18 01 200
17 12 300
17 11 500
17 10 700
我目前正在使用System iNavigator,但希望在某个时候将其移至外部连接的Excel查询中。
答案 0 :(得分:0)
您的DB2数据库应该能够使用CASE WHEN
根据月份可以用来计算年和月。
例如:
select
CASE WHEN pd = 1 THEN yr - 1 ELSE yr END as Yr,
CASE WHEN pd = 1 THEN 12 ELSE pd - 1 END as Pd,
SUM(BOM) as EOM
from Table1
where type = '3'
group by yr, pd
order by yr desc, pd desc