读书人

请问一个增长率的SQL多谢

发布时间: 2012-01-12 22:11:58 作者: rapoo

请教一个增长率的SQL,谢谢
SELECT T.FEE_MONTH,
T.MI_CODE,
SUM(NVL(T.AMNT, 0)) AMNT, /*费用*/
SUM(NVL(T.TIMES, 0)) TIMES, /*人次*/
SUM(NVL(T.PCOUNT, 0)) PCOUNT /*人数*/
FROM M_ZF_INSTFEE_MSTAT T
WHERE T.PSNTYPE = '1' /*城镇居民*/
AND T.FEE_MONTH BETWEEN '201012' AND '201112'
AND (T.MI_CODE = '00000004' OR T.MI_CODE = '05110004')
GROUP BY T.MI_CODE, T.FEE_MONTH
显示结果如下:
FEE_MONTH MI_CODE AMNT TIMES PCOUNT
120101200000004000
220101205110004000
3201101000000042032655
420110105110004332811
520110200000004250322
620110205110004000
720110300000004367211
820110305110004000
920110400000004000
1020110405110004000
1120110500000004000
1220110505110004000
我想得到如下结果,请教SQL,谢谢!
FEE_MONTH MI_CODE AMNT TIMES PCOUNT PRE_AMNT(上一月份的金额)
120101200000004000 0
220101205110004000 0
3201101000000042032655 0
420110105110004332811 0
520110200000004250322 20326
620110205110004000 3328
720110300000004367211 2503
820110305110004000 0
920110400000004000 3672
1020110405110004000 0
1120110500000004000 0
1220110505110004000 0


[解决办法]
求上一个月用 lag(金额字段) over(order by 日期字段)
[解决办法]

探讨

给你写一个简单的示例

SQL code

with tbl as
(
select '201101' as sdate, '001' as id, 11 as price from dual
union all
select '201101' as sdate, '002' as id, 12 as price from dual
union all
……

读书人网 >oracle

热点推荐