下面有一个表:要求查询出各种商品的总库存数量,库存总价,
成本均价(同种商品不能重复)-------------------------------------------
商品编码 |商品名称|仓库编码|数量|成本价|金额
-------------------------------------------
001   |电视机 |01   |5  |20  |100
-------------------------------------------
001   |电视机 |02   |10 |30  |300
-------------------------------------------
002   |计算机 |01   |5  |50  |250
-------------------------------------------
002   |计算机 |02   |10 |100  |1000
查询结果:     
------------------------------------------
商品编码 |商品名称|库存数量|成本均价|库存总价
------------------------------------------
001   |电视机 |15   |26.67 |150
------------------------------------------
002   |计算机 |15   |83.33 |1250
------------------------------------------
备注:
成本均价=库存总价/库存数量
或 成本均价=某商品的总金额/某商品的总数
列如:
电视机的成本均价=(100+300)/(5+10)
用SQL语言怎样查询?

解决方案 »

  1.   

    select t2.*, (t2.库存总价 / t2.库存数量) 成本均价
      from (select 商品编号, 商品名称, sum(数量) 库存数量, sum(金额) 库存总价
              from 表
             group by 商品编号, 商品名称) t2未经测试... 均价保留的小数位数可能需要你自己处理一下
      

  2.   

    declare @t table(goodsid varchar(10),goodsname varchar(50),warehouseid varchar(10),qty int,costprice int,amount int)
    insert @t select '001','电视机','01',5,20,100
    union all select '001','电视机','02',10,30,300
    union all select '002','计算机','01',5,50,250
    union all select '002','计算机','02',10,100,1000select 
    goodsid As '商品编码',
    goodsname As '商品名称',
    sum(qty) As '库存数量',
    cast(sum(amount)*1.0/sum(qty) as dec(8,2)) As '成本均价',
    sum(amount) As '库存总价'
    from @t
    group by goodsid,goodsname