有一个表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 要显示成下列形式
产品 红色数量 蓝色数量
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