ID     品名      尺寸      颜色       单件重      数量
1     足球鞋      40       白色        50          100
2     足球鞋      42       白色        52          150
3     篮球鞋      44       红色        52          150现在要分别计算相同品名,相同颜色的产品的总重量,而且要分别对应到相应的产品比如足球鞋,白色的总重量是50x100+52x150=12800,也就是得到如下结果记录ID     品名      尺寸      颜色       单件重      数量     总重量
1     足球鞋      40       白色        50          100      12800
2     足球鞋      42       白色        52          150      12800
3     篮球鞋      44       红色        52          150       7800

解决方案 »

  1.   


    declare @table table 
    (ID int,品名 varchar(6),尺寸 int,颜色 varchar(4),单件重 int,数量 int)
    insert into @table
    select 1,'足球鞋',40,'白色',50,100 union all
    select 2,'足球鞋',42,'白色',52,150 union all
    select 3,'篮球鞋',44,'红色',52,150select *,总重量=(select sum(单件重*数量) from @table 
    where 品名=t.品名 and 颜色=t.颜色) from @table t/*
    ID          品名     尺寸          颜色   单件重         数量          总重量
    ----------- ------ ----------- ---- ----------- ----------- -----------
    1           足球鞋    40          白色   50          100         12800
    2           足球鞋    42          白色   52          150         12800
    3           篮球鞋    44          红色   52          150         7800
    */
      

  2.   

    select *,总重量=(select sum(单件重*数量) from tb where 品名=t.品名 and 颜色=t.颜色) from tb t
      

  3.   

    ID  品名     尺寸   颜色    单件重   数量    重量       总重量
    1   足球鞋   40    白色      50    100    5000      12800
    2   足球鞋   42    白色      52    150    7800      12800
    3   篮球鞋   44    红色      52    150    7800      7800现在需要得到这样的记录,sql语句怎么写
      

  4.   


    select id,品名,尺寸, 颜色, 单件重, 数量,单件重*数量 as 重量,
    (select sum(c1.单件重*c1.数量) from c as c1 where c1.品名=c.品名) as 总重量
    from c