SELECT A.ID,A.MONTH,B.POINTS
FROM
(SELECT ID,COL1 AS MONTH
FROM YOURTABLENAME
WHERE COL1='MONTH'
) A
,(SELECT ID,COL1 AS POINTS
FROM YOURTABLENAME
WHERE COL1='POINTS'
) B
WHERE
A.ID=B.ID
FROM
(SELECT ID,COL1 AS MONTH
FROM YOURTABLENAME
WHERE COL1='MONTH'
) A
,(SELECT ID,COL1 AS POINTS
FROM YOURTABLENAME
WHERE COL1='POINTS'
) B
WHERE
A.ID=B.ID
解决方案 »
- oracle如何先count在選取count中最大的值,最後呈現有選的名稱
- 如何用sql删除某字段含有'/0/1'这样的记录?
- 求教:使用Net manager测试不通过的问题
- 通过数据链接查询远程数据库时,索引有效吗?
- 透明网关下,多表取数据插入问题
- 如何才能提高查询速度?
- 在存储过程中传递空变量
- oracle9i参数调整问题
- 数据导出时遇到的问题
- Oracle net配置测试是显示ORA-12541: TNS: 无监听程序 ,使用使用tnsping时,提示:TNS-03505: 无法解析
- 请问:如何实现对两个数据库的操作阿?
- 大侠快来看看啊,调试这oracle 9i的jsp论坛时怎么总报这样的错误啊?(解决问题后送100分)
insert into t values('1','month',10);
insert into t values('1','points',1000);
insert into t values('2','month',12);
insert into t values('2','points',5000);select id,sum(decode(a,'month',b,0))month,
sum(decode(a,'points',b,0))points
from t
group by id;
SELECT ID,COL2 AS MONTH
FROM YOURTABLENAME
WHERE COL1='MONTH'
而不是
SELECT ID,COL1 AS MONTH
FROM YOURTABLENAME
WHERE COL1='MONTH'而且在关联时如果不能保证每一个号码都有Month 和Points最好写成外关联.
总和而言就是
SELECT A.ID,A.MONTH,B.POINTS
FROM
(SELECT ID,COL2 AS MONTH
FROM YOURTABLENAME
WHERE COL1='MONTH'
) A
,(SELECT ID,COL2 AS POINTS
FROM YOURTABLENAME
WHERE COL1='POINTS'
) B
WHERE
A.ID(+)=B.ID(+)
---------- -------------------- ----------
1 month 10
1 points 1000
2 month 12
2 points 5000SQL> select id,sum(decode(month,'month',p)) month,sum(decode(month,'points',p)) points from t_1 group by id
2 ; ID MONTH POINTS
---------- ---------- ----------
1 10 1000
2 12 5000SQL>