select 模块,decode(问题一,sum(问题一),0), code(问题二,sum(问题二),0), from 表
create table t(a varchar2(10),b varchar2(10)); insert into t values('模块1','问题1'); insert into t values('模块1','问题2'); insert into t values('模块1','问题3'); insert into t values('模块2','问题1'); insert into t values('模块2','问题2'); insert into t values('模块3','问题3');commit;select * from t pivot (sum(1) for b in ('问题1','问题2','问题3','问题4','问题5'));
select 模块, (select sum(xx.问题一) from 问题表 xx where xx.模块=m.模块) 问题一, ... from 模块表 m 不知道你是不是想要这样的结果。
SELECT DECODE(T.M_NAME,NULL,'合计',T.M_NAME),SUM(DECODE(T.QUESTION,'问题一',1,0)) 问题一, SUM(DECODE(T.QUESTION,'问题二',1,0)) 问题二, SUM(DECODE(T.QUESTION,'问题三',1,0)) 问题三, SUM(DECODE(T.QUESTION,'问题四',1,0)) 问题四, SUM(DECODE(T.QUESTION,'问题五',1,0)) 问题五 FROM MOUDE_TEST T GROUP BY ROLLUP(T.M_NAME)
应该是行转列问题吧: SELECT 模块,SUM(DECODE('问题1',1,0)) '问题1', SUM(DECODE('问题2',1,0)) '问题2', SUM(DECODE('问题3',1,0)) '问题3', SUM(DECODE('问题4',1,0)) '问题4', SUM(DECODE('问题5',1,0)) '问题5', SUM(DECODE('问题6',1,0)) '问题6' FROM TAB_NAME GROUP BY 模块,问题;
select mokuai, wenti, count(*) from t group by( mokuai,wenti)
insert into t values('模块1','问题1');
insert into t values('模块1','问题2');
insert into t values('模块1','问题3');
insert into t values('模块2','问题1');
insert into t values('模块2','问题2');
insert into t values('模块3','问题3');commit;select * from t
pivot
(sum(1) for b in ('问题1','问题2','问题3','问题4','问题5'));
(select sum(xx.问题一) from 问题表 xx where xx.模块=m.模块) 问题一,
...
from 模块表 m
不知道你是不是想要这样的结果。
SUM(DECODE('问题2',1,0)) '问题2',
SUM(DECODE('问题3',1,0)) '问题3',
SUM(DECODE('问题4',1,0)) '问题4',
SUM(DECODE('问题5',1,0)) '问题5',
SUM(DECODE('问题6',1,0)) '问题6'
FROM TAB_NAME;
SUM(DECODE(T.QUESTION,'问题二',1,0)) 问题二,
SUM(DECODE(T.QUESTION,'问题三',1,0)) 问题三,
SUM(DECODE(T.QUESTION,'问题四',1,0)) 问题四,
SUM(DECODE(T.QUESTION,'问题五',1,0)) 问题五
FROM MOUDE_TEST T
GROUP BY ROLLUP(T.M_NAME)
SELECT 模块,SUM(DECODE('问题1',1,0)) '问题1',
SUM(DECODE('问题2',1,0)) '问题2',
SUM(DECODE('问题3',1,0)) '问题3',
SUM(DECODE('问题4',1,0)) '问题4',
SUM(DECODE('问题5',1,0)) '问题5',
SUM(DECODE('问题6',1,0)) '问题6'
FROM TAB_NAME GROUP BY 模块,问题;
from t
group by( mokuai,wenti)