有一个数据库商品号  种类号  颜色(红色)  颜色(黄色)  颜色(白色)001       22        ○         NULL        NULL
----------------------------------------------------
001       33        NULL       ○          NULL
----------------------------------------------------
001       44        NULL      NULL          ○
----------------------------------------------------
002       55        NULL       ○          NULL
----------------------------------------------------
002       66        ○        NULL         NULL
----------------------------------------------------
003       77       NULL       NULL          ○
----------------------------------------------------
003       88        ○        NULL         NULL
如果我想把上面的数据变成下面的形式应该怎么做商品号  颜色(红色)  颜色(黄色)  颜色(白色)001       ○           ○           ○
----------------------------------------------------
002       ○           ○           NULL
-----------------------------------------------------
003       ○           NULL          ○
请高手指点,谢谢了。

解决方案 »

  1.   

    select  
        商品号,
        max([颜色(红色)]) as [颜色(红色)],
        max([颜色(黄色)]) as [颜色(黄色)],
        max([颜色(白色)]) as [颜色(白色)] from
        表
    group by
        商品号
      

  2.   

    SELECT
        商品号,
        MAX([颜色(红色)]) [颜色(红色)],
        MAX([颜色(黄色)]) [颜色(黄色)],
        MAX([颜色(白色)]) [颜色(白色)] 
    FROM
        表
    GRUP BY
        商品号
      

  3.   

    declare @数据库 table (商品号 int,种类号 int,红色 varchar(6),黄色 varchar(6),白色 varchar(6))
    insert into @数据库 select 001,22,'o','',''
            union all   select 001,33,'','o',''
            union all   select 001,44,'','','o'
            union all   select 002,55,'','o',''
            union all   select 002,66,'o','',''
            union all   select 003,77,'','','o'
            union all   select 003,88,'o','',''
        select 商品号,MAX(红色) 红色, max(黄色) 黄色 ,MAX(白色) 白色 from @数据库
                      group by 商品号
    商品号         红色     黄色     白色
    ----------- ------ ------ ------
    1           o      o      o
    2           o      o      
    3           o             o(3 行受影响)