有一个表table
产品 颜色 数量
产品1 红色 100
产品2 红色 88
产品1 蓝色 56
产品1 红色 null
产品1 蓝色 48
产品2 蓝色 87
1.以产品分组,显示其中红色数量大于蓝色数量的的产品名称与差值?2 要显示成下列形式
产品 红色数量 蓝色数量
产品 颜色 数量
产品1 红色 100
产品2 红色 88
产品1 蓝色 56
产品1 红色 null
产品1 蓝色 48
产品2 蓝色 87
1.以产品分组,显示其中红色数量大于蓝色数量的的产品名称与差值?2 要显示成下列形式
产品 红色数量 蓝色数量
解决方案 »
- 提供者就给分 ,虽然不多.
- 请问高手如何查询时,需要加载所有索引?索引过大,怕转硬盘。
- linux as 4 安装oracle10g 找不到文件/etc/oratab
- 请教大家一个SQL
- 初学者求助:遇到导入时的报错该如何解决?
- 比如说一个员工表,有EMPNO,DEPTID,SALARY,怎么找出每个部门工资前3的员工
- PL/SQL中如何把comments的内容查找后都列出来?
- oracle建库问题,请教高手!
- 如何向number型的列插入诸如01,02这样的数据,并且要求查询输出时也是01,02而非1,2?
- 求一条需求特别的sql语句(QRACLE)
- Oracle 10g 数据库连接超时 系统Windows XP SP2
- odbc oracle driver for linux 哪有??
select 产品, 红色-蓝色 差值
from (
select 产品,
sum(decode(颜色,'红色',decode(数量,null,0,数量),0)) 红色,
sum(decode(颜色,'蓝色',decode(数量,null,0,数量),0)) 蓝色
from ttt3
group by 产品
) where 红色>蓝色
2 要显示成下列形式
产品 红色数量 蓝色数量
select 产品,
sum(decode(颜色,'红色',decode(数量,null,0,数量),0)) 红色,
sum(decode(颜色,'蓝色',decode(数量,null,0,数量),0)) 蓝色
from ttt3
group by 产品
1.
SELECT SUM(DECODE (颜色,'红色',NVL(数量,0) ,-NVL(数量,0) )) CHA,
产品 FROM TABLE GROUP BY
产品 HAVING SUM(DECODE (颜色,'红色',NVL(数量,0) ,-NVL(数量,0) )) >0;
2.
SELECT 产品,SUM(DECODE (颜色,'红色',NVL(数量,0), 0 )) HSSL,
SUM(DECODE (颜色,'蓝色',NVL(数量,0), 0 )) LSSL FROM table
group by 产品
1.
select t.prod_name,
sum(decode(t.color,'红色',nvl(t.score,0),0))"红色",
sum(decode(t.color,'蓝色',nvl(t.score,0),0))"蓝色"
from temp t
group by t.prod_name2.
select d.prod_name,'蓝色',d.cha
from (
select t.prod_name,
sum(decode(t.color,'红色',t.score,-t.score)) cha
from temp t
group by t.prod_name) d
where d.cha>0