首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

求大神赐于一条SQL,感激涕零

2013-08-01 
求大神赐于一条SQL,感激不尽oracle有数据表是TDYEARMONTHPK_CORPCWAREHOUSEIDCINVENTORYIDCINVBASIDVAR201

求大神赐于一条SQL,感激不尽
oracle有数据表是T
DYEARMONTHPK_CORPCWAREHOUSEIDCINVENTORYID           CINVBASIDVAR
2012-0410021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ70
2012-0510021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ-25
2012-0610021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ-10
2012-0710021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ72
2012-0810021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ-3
2012-0910021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ-37
2012-1010021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ-27
2012-1110021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ-17
2012-1210021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ91
2013-0110021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ-47

现在想有一个类似递归的形式,以DYEARMONTH为条件,如2012-04这条数据VAR的值是本身(70),2012-05的数据为
2012-04的var+上2012-05的var,70+(-25),一下类似,重新整理输出数据


结果如:
2012-0410021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ70
2012-0510021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ45
2012-0610021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ35
2012-0710021002F8100000000003ZA0001A210000000008K160001F8100000000009ZZ107
。。。。。。。。

求高手解决,在线等,谢谢!!!







[解决办法]
try this,


select a.DYEARMONTH,
       a.PK_CORP,
       a.CWAREHOUSEID,
       a.CINVENTORYID,
       a.CINVBASID,
       nvl((select sum(b.VAR) from tabT b
            where TO_DATE(b.DYEARMONTH+'-01','YYYY-MM-DD')-TO_DATE(a.DYEARMONTH+'-01','YYYY-MM-DD')<0),0)+a.VAR 'VAR'
 from tabT a

热点排行