读书人

马战士视频中一道关于sql的题有点难

发布时间: 2011-12-23 23:32:01 作者: rapoo

马士兵视频中一道关于sql的题,有点难度,请高手求解
题目:用sql语句完成下列1,2题,至于测试的时候在什么数据库中都可以
Table product1;
产品productName1 颜色color1 数量num1

产品1 红 133
产品1 蓝 126
产品2 蓝 103
产品2 红 null
产品2 红 89
产品1 红 203

1.按产品分类仅列出各类商品中红色多于蓝色的商品名称及差额数量

2.按产品分类,将数据按如下方式进行统计显示

产品productName2 红色rednum 蓝色bluenum
产品1 1500 1298
.........



[解决办法]

SQL code
--1select productName1,color1,       sum(decode(color1,'红',1,0))-sum(decode(color1,'蓝',1,0)) num_  from product1 group by productName1,color1 having sum(decode(color1,'红',1,0)) > sum(decode(color1,'蓝',1,0)); --2select productName1,       sum(decode(color1,'红',1,0)) 红色rednum ,       sum(decode(color1,'蓝',1,0)) 蓝色bluenum  from product1 group by productName1;
[解决办法]
探讨
非常感谢一楼,但是你的那个1好像只是记录条数而没有涉及到产品的数量,另外那个null值在decode中是怎么处理的?

[解决办法]
SQL code
select productName1,color1,    sum(decode(color1,'红',nvl(num1,0),0))-sum(decode(color1,'蓝',nvl(num1,0),0)) num_from product1group by productName1,color1having sum(decode(color1,'红',nvl(num1,0),0)) > sum(decode(color1,'蓝',nvl(num1,0),0)) 

读书人网 >oracle

热点推荐