select job_num,job_qry,sum(decode(prod_proc,'23',don_qty,0)) as 1, sum(decode(prod_proc,'34',don_qty,0)) as 2 ,sum(decode(prod_proc,'51',don_qty,0)) as 3 from table_name group by job_num,job_qty; 这是一个列变行的相关问题,不懂的话可以看看这个贴子: http://community.csdn.net/Expert/topic/3309/3309246.xml?temp=.69302
-------------------- ---------- ---------- ----------
140126 1500 23 1201
140126 1500 25 1222
140126 1500 19 12
140127 1500 1 112
140127 1600 4 115已用时间: 00: 00: 00.32
11:44:24 SQL> select job_num,job_qty,sum(decode(tid,1,don_qty,0)) c1,
11:44:29 2 sum(decode(tid,2,don_qty,0)) c2,sum(decode(tid,3,don_qty,0)) c3,
11:44:29 3 sum(decode(tid,4,don_qty,0)) c4,sum(decode(tid,5,don_qty,0)) c5
11:44:29 4 from (
11:44:29 5 select id-mid+1 tid,t.* from (select rownum id,test.* from test) t,
11:44:29 6 (select min(id) mid,job_num from (select rownum id,job_num from test)
11:44:29 7 group by job_num) tt
11:44:29 8 where t.job_num=tt.job_num(+)
11:44:29 9 ) tb group by job_num,job_qty;JOB_NUM JOB_QTY C1 C2 C3 C4
-------------------- ---------- ---------- ---------- ---------- ----------
C5
----------
140126 1500 1201 1222 12 0
0140127 1500 112 0 0 0
0140127 1600 0 115 0 0
0
已用时间: 00: 00: 00.78
这是一个列变行的相关问题,不懂的话可以看看这个贴子:
http://community.csdn.net/Expert/topic/3309/3309246.xml?temp=.69302