首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请求帮忙!多谢了

2012-01-28 
请求帮忙!谢谢了!2.一个简单的表TABLE有100条以上的信息,其中包括:产品颜色数量产品1红色123产品1蓝色126

请求帮忙!谢谢了!
2.一个简单的表TABLE       有100条以上的信息,其中包括:      
    产品                                         颜色                                                       数量      
    产品1                                       红色                                                       123      
    产品1                                       蓝色                                                       126      
    产品2                                       蓝色                                                       103      
    产品2                                       红色                                                       NULL      
    产品2                                       红色                                                       89      
    产品1                                       红色                                                       203      
    。。。。。。。。。。。。      
    用SQL语句完成以下问题:      
           
    1。按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量:          
       
       
    2。按产品分类,将数据按下列方式进行统计显示      
                            产品                                       红色                                               蓝色

[解决办法]
1.
select 产品, 差异 = sum(case 颜色 when '红色 ' then 数量 when '蓝色 ' then - 数量 end)


from tb
group by 产品
having sum(case 颜色 when '红色 ' then 数量 when '蓝色 ' then - 数量 end) > 0
[解决办法]
1,
select 产品, (sum(case 颜色 when '红色 ' then isnull(数量,0) end)-sum(case 颜色 when '蓝色 ' then isnull(数量,0) end)) as 差额
from tb
group by 产品
having (sum(case 颜色 when '红色 ' then isnull(数量,0) end)-sum(case 颜色 when '蓝色 ' then isnull(数量,0) end)) > 0

-----------------------------------------------
2.
select 产品,红色=sum(case 颜色 when '红色 ' then isnull(数量,0)end)
,蓝色=sum(case 颜色 when '蓝色 ' then isnull(数量,0) end)
from tb
group by 产品


[解决办法]
1、
(sum(case 颜色 when '红色 ' then isnull(数量,0) end)-sum(case 颜色 when '蓝色 ' then isnull(数量,0) end)) as 差额

把红色与蓝色的数量之和进行相减得到 ‘差额’列

2、
having (sum(case 颜色 when '红色 ' then isnull(数量,0) end)-sum(case 颜色 when '蓝色 ' then isnull(数量,0) end)) > 0
列的筛选 返回红色的数量大于蓝色的数量的记录

3、
group by 产品

对产品进行分组统计

热点排行