正在做一个库存管理软件:
有库存表如下:商品编码      商品名称    存放仓库    数量       金额
 0001           商品1       A库        1          100
 0002           商品2       A库        2          200
 0003           商品3       A库        3          300
 0001           商品1       B库        1          100
 0002           商品2       B库        2          200
 0003           商品3       B库        3          300
 0001           商品1       c库        1          100
 0002           商品2       c库        2          200
 0003           商品3       c库        3          300仓库表中可以建立多个仓库,由客户自行建立
现在需要统计各仓库的分布状况,需统计出下表:商品编码    商品名称     全部仓库数量   全部仓库金额    A库数量 A库金额   B库数量  B库金额  C库数量  C库金额
0001         商品1             3             300          1       100        1       100       1       100
0002         商品2             6             600          2       200        2       200       2       200
0003         商品3             9             900          3       300        3       300       3       300上例仅建立的三个仓库,实际仓库数不确定,有多少个仓库都需要在统计表中以以上形式显示出来,不想使用存储过程,请高手帮忙。

解决方案 »

  1.   

    http://topic.csdn.net/t/20031203/10/2521547.html
      

  2.   

    不使用储存过程很难构造动态SQL.要不然就要在CLIENT程序中构造.
      

  3.   


    select 商品编码,
    min(商品名称) as 商品名称,
    sum(数量) as 全部仓库数量,
    sum(金额) as 全部仓库金额,
    sum(CASE WHEN 存放仓库='A库' THEN 数量 ELSE 0 END)as A库数量,
    sum(CASE WHEN 存放仓库='A库' THEN 金额 ELSE 0 END)as A库金额,
    sum(CASE WHEN 存放仓库='B库' THEN 数量 ELSE 0 END)as B库数量,
    sum(CASE WHEN 存放仓库='B库' THEN 金额 ELSE 0 END)as B库金额,
    sum(CASE WHEN 存放仓库='C库' THEN 数量 ELSE 0 END)as C库数量,
    sum(CASE WHEN 存放仓库='C库' THEN 金额 ELSE 0 END)as C库金额from 库存表
    group by 商品编码
      

  4.   

    一个sql恐怕很难达到你的要求,估计还是要用存储过程