SELECT PEOPLE,
SUM(DECODE("TYPE",'A',AMOUNT,0)) AS A,
SUM(DECODE("TYPE",'B',AMOUNT,0)) AS B,
SUM(DECODE("TYPE",'C',AMOUNT,0)) AS C,
SUM(DECODE("TYPE",'D',AMOUNT,0)) AS D
FROM T
GROUP BY PEOPLE
SUM(DECODE("TYPE",'A',AMOUNT,0)) AS A,
SUM(DECODE("TYPE",'B',AMOUNT,0)) AS B,
SUM(DECODE("TYPE",'C',AMOUNT,0)) AS C,
SUM(DECODE("TYPE",'D',AMOUNT,0)) AS D
FROM T
GROUP BY PEOPLE
---------- -------------------- ----------
ad a 234
ad b 345
ad a 234
ch c 43
ch d 435
an a 435已选择6行。已用时间: 00: 00: 00.00
13:15:29 SQL*PLUS>SELECT people ,SUM(decode(TYPE,'a',0,amount)) a,
13:15:30 2 SUM(decode(TYPE,'b',0,amount)) b,
13:15:30 3 SUM(decode(TYPE,'c',0,amount)) c,
13:15:30 4 SUM(decode(TYPE,'d',0,amount)) d
13:15:30 5 FROM bb GROUP BY people;PEOPLE A B C D
---------- ---------- ---------- ---------- ----------
ad 345 468 813 813
an 0 435 435 435
ch 478 478 435 43已用时间: 00: 00: 00.00
13:15:31 SQL*PLUS>
people,
MAX(DECODE(type ,'A' ,amount ,0)) AS A,
MAX(DECODE(type ,'B' ,amount ,0)) AS B,
MAX(DECODE(type ,'C' ,amount ,0)) AS C,
MAX(DECODE(type ,'D' ,amount ,0)) AS D
FROM
tabname
GROUP BY
people
13:15:31 SQL*PLUS>SELECT people ,SUM(decode(TYPE,'a',amount,0)) a,
13:18:20 2 SUM(decode(TYPE,'b',amount,0)) b,
13:18:20 3 SUM(decode(TYPE,'c',amount,0)) c,
13:18:20 4 SUM(decode(TYPE,'d',amount,0)) d
13:18:20 5 FROM bb GROUP BY people;PEOPLE A B C D
---------- ---------- ---------- ---------- ----------
ad 468 345 0 0
an 435 0 0 0
ch 0 0 43 435已用时间: 00: 00: 00.00
13:18:21 SQL*PLUS>
sum(decode(type,'A',amount,0)) A,
sum(decode(type,'B',amount,0)) B,
sum(decode(type,'C',amount,0)) C,
sum(decode(type,'D',amount,0)) D
from tbl
group by people;
max(decode(type, 'A', amount, 0)) A,
max(decode(type, 'B', amount, 0)) B,
max(decode(type, 'C', amount, 0)) C,
max(decode(type, 'D', amount, 0)) D
from tablename
group by people