有一张表T,可能有如下数据部门 月份 支出类型 支出金额
部门A 1 支出类型1 10.00
部门A 2 支出类型2 20.00
部门B 1 支出类型1 30.00目前希望得到的结果是: 1月 2月 3月 ……
部门A 支出类型1 20.00 30.00 40.00
部门A 支出类型2 5.00 10.00 15.00
部门A 合计 25.00 40.00 55.00
…………希望各位高人能给小弟一点提示。需求是月份和类型都不固定:如果5月查询则显示前5个月的情况,若10月查询则显示前10个月的情况。支出类型也可以由用户维护,小弟实在不知道该怎么写了,求各位高手帮忙,或者能够告诉小弟支出类型为2种的时候这个SQL该怎么写就行,不胜感激
部门A 1 支出类型1 10.00
部门A 2 支出类型2 20.00
部门B 1 支出类型1 30.00目前希望得到的结果是: 1月 2月 3月 ……
部门A 支出类型1 20.00 30.00 40.00
部门A 支出类型2 5.00 10.00 15.00
部门A 合计 25.00 40.00 55.00
…………希望各位高人能给小弟一点提示。需求是月份和类型都不固定:如果5月查询则显示前5个月的情况,若10月查询则显示前10个月的情况。支出类型也可以由用户维护,小弟实在不知道该怎么写了,求各位高手帮忙,或者能够告诉小弟支出类型为2种的时候这个SQL该怎么写就行,不胜感激
http://blog.csdn.net/kinglht
UNION
SELECT 'A' DEPTNO,2 YM,'類型2' TYPE,20 MONEY FROM DUAL
UNION
SELECT 'B' DEPTNO,1 YM,'類型1' TYPE,30 MONEY FROM DUAL
)
SELECT DEPTNO,TYPE,MAX(DECODE(RN,1,MONEY,0)),MAX(DECODE(RN,2,MONEY,0))
FROM (SELECT A.*,ROW_NUMBER()OVER(PARTITION BY DEPTNO ORDER BY DEPTNO,TYPE) RN FROM A)
GROUP BY grouping SETS ((DEPTNO,TYPE),DEPTNO)
ORDER BY DEPTNO
DEPTNO TYPE MAX(DECODE(RN,1,MONEY,0)) MAX(DECODE(RN,2,MONEY,0))
------ ----- ------------------------- -------------------------
A 類型1 10 0
A 類型2 0 20
A 10 20
B 類型1 30 0
B 30 0我已經盡力了,但是還是有遺憾,希望高手指點一二!