表结构如下:(表名table1)
id ordid useid(方式) twouseid
1 103 1 1
2 104 2 3
3 103 2 1
4 103 3 2要求统计结果输出如下
ordid useid(该机构所有方式的记录数) useid为1的记录数 useid为2的记录数 useid为2的记录数
103 ? ? ? ?
104 ? ? ? ?twouseid为1的记录数 twouseid为2的记录数 twouseid为3的记录数
? ? ?
? ? ?
如果ordid的某种方式的记录数没有记录则为0不仅仅是把行转化为列就可以了~还有个统计的问题,要统计出记录的条数请教如何写sql语句?谢谢指教 万分感谢我头都想破了都想不到怎么做~请大家帮忙~
id ordid useid(方式) twouseid
1 103 1 1
2 104 2 3
3 103 2 1
4 103 3 2要求统计结果输出如下
ordid useid(该机构所有方式的记录数) useid为1的记录数 useid为2的记录数 useid为2的记录数
103 ? ? ? ?
104 ? ? ? ?twouseid为1的记录数 twouseid为2的记录数 twouseid为3的记录数
? ? ?
? ? ?
如果ordid的某种方式的记录数没有记录则为0不仅仅是把行转化为列就可以了~还有个统计的问题,要统计出记录的条数请教如何写sql语句?谢谢指教 万分感谢我头都想破了都想不到怎么做~请大家帮忙~
sum(decode(useid,2,1,0)) useid2,
sum(decode(useid,3,1,0)) useid3,
sum(decode(twouseid,1,1,0)) twouseid1,
sum(decode(twouseid,2,1,0)) twouseid2,
sum(decode(twouseid,3,1,0)) twouseid3
from table1
group by ordid
---------- ---------- ----------
A 1 103
A 1 103
C 3 104
D 1 104
B 4 103
B 2 104
C 2 104
C 2 103
A 2 103
A 4 10310 rows selectedExecuted in 0.031 secondsSQL> C3 SUM(A) SUM(C2_1) SUM(C2_2) SUM(C2_3) SUM(C2_4) SUM(C1_A) SUM(C1_B) SUM(C1_C) SUM(C1_D) SUM(C1_E)
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
103 6 2 2 0 2 4 1 1 0 0
104 4 1 2 1 0 0 1 2 1 0Executed in 0.016 secondsSQL>
sum(C1_A),sum(C1_B),sum(C1_C),sum(C1_D),sum(C1_E) from
(select c3,sum(1) A,
decode(c2,'1',sum(1),0) "C2_1",
decode(c2,'2',sum(1),0) "C2_2",
decode(c2,'3',sum(1),0) "C2_3",
decode(c2,'4',sum(1),0) "C2_4",
decode(c1,'A',sum(1),0) "C1_A",
decode(c1,'B',sum(1),0) "C1_B",
decode(c1,'C',sum(1),0) "C1_C",
decode(c1,'D',sum(1),0) "C1_D",
decode(c1,'E',sum(1),0) "C1_E"
from c
group by c3,c2,c1
)
group by c3;
谢谢!一解决问题我马上给分封贴了,呵呵,谢谢二位高手了