曾经在大富翁上登过,但答案不符合我的要求,再次提出有一个表中有
货物名称,型号,数量,进出货等字段,
现在将统计该表中的总进库、总出库量,到dbgrid中。
这很简单,只用一句sql即可。

select 货物名称,型号,进出,sum(数量) 
group by 货物名称,型号,进出 
order by 货物名称,型号
但是我要在dbgrid中增加一列,就是 将进货总数减去出货总数,
放在进货行中,即库存。如图例:
名称  型号 进出 数量 电缆 100-xl 进库 3000
电缆 100-xl 出库 900
电缆 200-xl 进库 3000
电缆 200-xl 出库 900
.............
改成
名称  型号 进出 数量 库存 电缆 100-xl 进库 3000 2100
电缆 100-xl 出库 900
电缆 200-xl 进库 1000 300
电缆 200-xl 出库 700
.............
如何着手,盼回复。顺便问很淡的灰色数值是多少

解决方案 »

  1.   

    好像有个have或者cop...什么的关键字可以实现这个。
      

  2.   

    采用union:
    create or replace view stock_movement1(货物名称,型号,进出,数量,库存)
    as select 货物名称,型号,进出,数量, 0 
    from 你的表
    union all
    select 货物名称,型号,进出,0,数量
    from 你的表
    where 进出 = '进库'
    union all
    select 货物名称,型号,进出,0,数量
    from 你的表
    where 进出 = '出库';最后结果:
    create or replace view stock_movement2(货物名称,型号,进出,数量,库存)
    as select 货物名称,型号,进出,sum(数量),sum(库存)
    from stock_movement1
    group by 货物名称,型号,进出;
      

  3.   

    改正一点:create or replace view stock_movement1(货物名称,型号,进出,数量,库存)
    as select 货物名称,型号,进出,数量, 0 
    from 你的表
    union all
    select 货物名称,型号,进出,0,数量
    from 你的表
    where 进出 = '进库'
    union all
    select 货物名称,型号,进出,0, - 数量
    from 你的表
    where 进出 = '出库';
      

  4.   

    用UNION可以,用SQL子查询也可以,这里有一段我写的,你做一下修改就可以了呀
    SELECT a.ORNO,a.ORDA,a.MPQU,
     a.MPQU-(SELECT b.CPQU FROM T_Order b 
      WHERE a.ORNO=b.ORNO AND a.ORDA=b.ORDA 
        AND a.ORNO='000001'
    ) AS ttt 
      FROM T_Order a