說我有以下數據:添加缺少的從以前的一個月或一年累計數據
select 1 id, 'A' name, '2007' year, '04' month, 5 sales from dual union all
select 2 id, 'A' name, '2007' year, '05' month, 2 sales from dual union all
select 3 id, 'B' name, '2008' year, '12' month, 3 sales from dual union all
select 4 id, 'B' name, '2009' year, '12' month, 56 sales from dual union all
select 5 id, 'C' name, '2009' year, '08' month, 89 sales from dual union all
select 13 id,'B' name, '2016' year, '01' month, 10 sales from dual union all
select 14 id,'A' name, '2016' year, '02' month, 8 sales from dual union all
select 15 id,'D' name, '2016' year, '03' month, 12 sales from dual union all
select 16 id,'E' name, '2016' year, '04' month, 34 sales from dual
我想會逐漸增加了所有在所有年銷售和它們各自的週期(月)。輸出應該如下所示:
name year month sale opening bal closing bal
A 2007 04 5 0 5
A 2007 05 2 5 7
B 2008 12 3 12 15
A 2008 04 0 5 5 -- to be generated
A 2008 05 0 7 7 -- to be generated
B 2009 12 56 15 71
C 2009 08 89 71 160
A 2009 04 0 5 5 -- to be generated
A 2009 05 0 7 7 -- to be generated
B 2016 01 10 278 288
B 2016 12 0 71 71 -- to be generated
A 2016 02 8 288 296
A 2016 04 0 5 5 -- to be generated
A 2016 05 0 7 7 -- to be generated
D 2016 03 12 296 308
E 2016 04 34 308 342
C 2016 08 0 160 160 -- to be generated
期初餘額是前一個月的期末餘額,如果它進入明年比明年的期初餘額是上年年末餘額。在接下來的幾年中,它應該能夠像這樣工作。我有這部分工作。然而,我不知道如何避免2009年存在的缺失。例如,2008年的關鍵A,2008,04以及A,2008,05不存在,代碼應該能夠添加它在2009年如上。其他年份和月份也一樣。
我正在使用Oracle 12c。
在此先感謝。
您是否在樣本數據中存在拼寫錯誤?您的輸出數據引用了A,2007,04和05,但在您的示例數據中,您有A,2007,04,但是B,2007,05。此外,您的「隨後幾年」是什麼意思?這是2007年至今的所有年份,還是僅僅是數據中存在的年份(例如2007年,2008年,2009年和2016年)?附: **感謝您提供的樣品數據!以這種方便的形式獲取數據非常少見! * {: - D – Boneist
我在那裏沒有B,2007,05。自己無法看到:S – bytebiscuit
'select 2 id,'B'name,'2007'year,'05'month,2 sales from dual union all' – Boneist