同一个物资,入库2次,出库4次,我想让他显示成
物资     入库      出库
物A     入1      出1
物A     入2      出2
物A              出3
物A              出4    
(物资表,入库表,出库表)这SQL 怎么写,全连接会查出8条来。 
各位可以简单的建3张表,两张表里都保存有第一张表的ID,然后后试着查询
物ID  入ID   物ID  出ID
where 入.物ID=出.物ID  

解决方案 »

  1.   

    select 物资,入库,出库 from 物资表 a,入库表 b,出库表 c
    where a.物资ID = b.物资ID(+)
    and a.物资ID = c.物资ID(+);
      

  2.   

    大哥这个方法不行,有重复的,你查的结果跟full join查不多,
      

  3.   

    你可以按物资ID分组取序号,然后根据序号作全外联结,类似sql如下:
    [code=SQL]
    SELECT *
    FROM   (SELECT row_number() over(PARTITION BY 物资ID ORDER BY 1)) r, a.* FROM   入库表 a) a
    FULL   OUTER JOIN (SELECT row_number() over(PARTITION BY 物资ID ORDER BY 1)) r, a.* FROM   出库表 a) b
    USING  (r,物资ID)
    JOIN 物资表 c USING(物资ID)
    code]