select b.商品,sum(b.數量) as 庫存 from 
(select 商品,數量 from 入庫表
union  all 
select 商品,數量*-1 as數量 from 出庫表) b group by 商品  
把上面的SQL语句改成interbase语句怎么写啊??interbase不支持 from 后带(select ..)  
    入库表                            出库表   
入库日期    商品  数量           出库日期    商品  数量
2008.12.12  牙膏   1             2008.12.15  牙刷  1
2008.12.12  牙刷   1             2008.12.15  牙膏  1
2008.12.13  牙刷   1怎样用SQL语句列出所有商品的库存数量? 

解决方案 »

  1.   

    创建一个视图吧,内容就为
    select 商品,數量 from 入庫表 
    union  all 
    select 商品,數量*-1 as數量 from 出庫表,
    然后使用视图去查询统计,应该可以满足了
      

  2.   

    select 商品, sum(数量) from (select 商品 as 商品,數量 as 数量 from 入庫表
    union  all
    select 商品,數量*-1 as數量 from 出庫表) t 
    group by t.商品借鉴楼上的成果
      

  3.   


    select 商品,sum(数量)
    from
    (
      select 商品,sum(数量)数量 from 入库表 group by 商品
      union all
      select 商品,sum(-1*数量)数量 from 出库表 group by 商品
    ) aa (商品,数量)/* 这里括号部分是关键*/
    group by 商品Firebird 2.1 下运行通过
    如果InterBase 不支持的话,就写视图吧  CREATE VIEW 库存(
        商品,
        数量)
    AS
      select 商品,sum(数量)数量 from 入库表 group by 商品
      union all
      select 商品,sum(-1*数量)数量 from 出库表 group by 商品写成视图
    用视图在汇总select 商品,sum(數量) from 库存
    group by 商品