库存表
  商品名  ,规格, 单价 ,  数量
   显示器          100       2
   显示器          200       3
   鼠标            200       2我想要的结果:      商品名,规格,品均价,数量,总金额
      显示器          150     5      800
      鼠标            200     2      400如何写???但是我写的主要是不知道怎么获得总金额????

解决方案 »

  1.   

    SELECT 商品名,AVR(单价) AS 品均价,SUM(数量) 数量,SUM(单价*数量)AS 总金额 
    FROM TB 
    GROUP BY 商品名
      

  2.   

    SELECT 商品名,AVG(单价) AS 品均价,SUM(数量) 数量,SUM(单价*数量)AS 总金额 
    FROM TB 
    GROUP BY 商品名
      

  3.   


    SELECT 商品名,AVG(单价) AS 品均价,SUM(数量) 数量,SUM(单价*数量)AS 总金额 
    FROM TB 
    GROUP BY 商品名
      

  4.   

    declare @TT table
    (
    商品名 varchar(20),
     单价 int,
     数量 int
    )
    insert into @TT select '显示器',100,2
    insert into @TT select '显示器',200,3
    insert into @TT select '鼠标',200,2select 商品名,sum(数量) 数量,sum(单价*数量) 总金额 from @TT group by 商品名
      

  5.   

    select 
     商品名,avg(单价) as 品均价,
     sum(数量) as 数量,
     sum(单价*数量) as 总金额
    from
     tb
    group by
     商品名
      

  6.   

    declare @TT table
    (
    商品名 varchar(20),
     单价 int,
     数量 int
    )
    insert into @TT select '显示器',100,2
    insert into @TT select '显示器',200,3
    insert into @TT select '鼠标',200,2select 商品名,sum(数量) 数量,sum(单价*数量) 总金额 from @TT group by 商品名商品名                  数量          总金额
    -------------------- ----------- -----------
    鼠标                   2           400
    显示器                  5           800
      

  7.   


    --> 测试数据:@A
    declare @A table([商品名] varchar(20),[单价] int,[数量] int)
    insert @A
    select 'Monitor','100', '2' union all
    select 'Monitor','200', '3' union all
    select 'Mouse','200', '2' select 商品名,avg(单价) AS 品均价,SUM(数量) as 总数量,SUM(单价*数量) AS 总金额 
    from @A a 
    group by 商品名/*
    商品名                  品均价         总数量         总金额         
    -------------------- ----------- ----------- ----------- 
    Monitor              150         5           800
    Mouse                200         2           400(2 row(s) affected)
    */
      

  8.   


    是均价错了吧?--> 测试数据:@A
    declare @A table([商品名] varchar(20),[单价] int,[数量] int)
    insert @A
    select 'Monitor','100', '2' union all
    select 'Monitor','200', '3' union all
    select 'Mouse','200', '2' select 商品名,SUM(单价*数量)/SUM(数量) AS 品均价,SUM(数量) as 总数量,SUM(单价*数量) AS 总金额 
    from @A a 
    group by 商品名/*
    商品名                  品均价         总数量         总金额         
    -------------------- ----------- ----------- ----------- 
    Monitor              160         5           800
    Mouse                200         2           400(2 row(s) affected)
    */
      

  9.   

    那楼主想怎么样啊
    SELECT 商品名,规格,AVG(单价) AS 品均价,SUM(数量) 数量,SUM(单价*数量)AS 总金额 
    FROM TB 
    GROUP BY 商品名,规格莫非加了规格分组,就不对了???
      

  10.   

    if object_id('库存表') is not null drop table 库存表
    go
    create table 库存表(商品名 nvarchar(10),规格 nvarchar(10), 单价 decimal(14,6),  数量 decimal(14,0))
    insert 库存表
    select
      '显示器'     ,  '1*1',   100  ,    2 union all select
     '显示器'       ,  '1*1',    200  ,    3 union all select
      '鼠标'         ,  '1*1',    200,      2        
     select a.商品名,a.规格,AVG(单价) as 品均价,SUM(数量) as 数量,SUM(数量*单价) as 总金额
       from 库存表 a
       group by a.商品名,a.规格
       
       /*
       商品名 规格 品均价 数量 总金额
    鼠标 1*1 200.000000 2 400.000000
    显示器 1*1 150.000000 5 800.000000
    */
       
      

  11.   

          
     select a.商品名,a.规格,SUM(数量*单价)/sum(数量) as 品均价,SUM(数量) as 数量,SUM(数量*单价) as 总金额
       from 库存表 a
       group by a.商品名,a.规格
       
       /*
    商品名 规格 品均价 数量 总金额
    鼠标 1*1 200.000000 2 400.000000
    显示器 1*1 160.000000 5 800.000000
    */应该是这样的
      

  12.   

     select a.商品名,a.规格,SUM(数量*单价)/sum(数量) as 品均价,SUM(数量) as 数量,SUM(数量*单价) as 总金额
       from 库存表 a
       group by a.商品名,a.规格不是有了吗?
      

  13.   

    select a.商品名,a.规格,SUM(数量*单价)/sum(数量) as 品均价,SUM(数量) as 数量,SUM(数量*单价) as 总金额
       from 库存表 a
       group by a.商品名,a.规格
    --一个商品一个规格
    select a.商品名,max(a.规格) as 规格,SUM(数量*单价)/sum(数量) as 品均价,SUM(数量) as 数量,SUM(数量*单价) as 总金额
       from 库存表 a
       group by a.商品名
    --一个商品我个格式这样即可
      

  14.   

    declare @TT table
    (
    商品名 varchar(20),
     规格 varchar(20),
     单价 int,
     数量 int
    )
    insert into @TT select '显示器','aa',100,2
    insert into @TT select '显示器','aa',200,3
    insert into @TT select '鼠标','cc',200,2select 商品名,规格,sum(数量) 数量,avg(单价) 平均价,sum(单价*数量) 总金额 from @TT group by 商品名,规格
     order by 总金额 desc
    商品名                  规格                   数量          平均价         总金额
    -------------------- -------------------- ----------- ----------- -----------
    显示器                  aa                   5           150         800
    鼠标                   cc                   2           200         400