本帖最后由 tinqiu 于 2014-02-11 09:51:06 编辑

解决方案 »

  1.   

    try this,select a.FItemID '物料代码',
           isnull(b.FQty1,0) '在库数',
           isnull(c.FQty2,0) '在购数'
     from dba1.dbo.t_Item a
     left join 
     (select FItemID,sum(FQty) 'FQty1'
      from dba1.dbo.ICInventory
      group by FItemID) b on a.FItemID=b.FItemID
     left join 
     (select FItemID,sum(FQty) 'FQty2'
      from dba1.dbo.POOrderEntry
      group by FItemID) c on a.FItemID=c.FItemID
     where a.FItemClassID=4
      

  2.   

    t_Item      物料基础表
    ICInventory  物料库存表
    POOrderEntry 物料采购表
    FItemID   物料内码
    FNumbe    物料代码(只在物料基础表中有)
    FQty   数量
    这样可以吗?不行我再加
      

  3.   

    三张贴图的顺序是
    t_Item      物料基础表
    ICInventory  物料库存表
    POOrderEntry 物料采购表
      

  4.   

    不包住SQLServer会认为是列名,但是你的表不存在这些列名
      

  5.   


    select a.FItemID as '物料代码',b.在库数 ,c.在购数 from t_Item a left join 
    (
    select FItemID,sum(FQty) as '在库数' from ICInventory group by FItemID
    )b on a.FItemID=b.FItemID left join 
    (
    select FItemID ,sum(FQty) as '在购数' from POOrderEntry group by FItemID
    )c on a.FItemID=c.FItemID
    where a.FItemID=4
      

  6.   

    fqty1这些不用包住....你直接用6楼的,不要修改什么
      

  7.   

    改一下:select a.FItemID as '物料代码',isnull(b.在库数,0) as '在库数' ,isnull(c.在购数,0) as '在购数' from t_Item a left join 
    (
    select FItemID,sum(FQty) as '在库数' from ICInventory group by FItemID
    )b on a.FItemID=b.FItemID left join 
    (
    select FItemID ,sum(FQty) as '在购数' from POOrderEntry group by FItemID
    )c on a.FItemID=c.FItemID
    where a.FItemID=4
      

  8.   

    用这个试试:select a.FItemID '物料代码',
           isnull(b.FQty1,0) '在库数',
           isnull(c.FQty2,0) '在购数'
     from dba1.dbo.t_Item a
     left join 
     (select FItemID,sum(FQty) [FQty1]
      from dba1.dbo.ICInventory
      group by FItemID) b on a.FItemID=b.FItemID
     left join 
     (select FItemID,sum(FQty) [FQty2]
      from dba1.dbo.POOrderEntry
      group by FItemID) c on a.FItemID=c.FItemID
     where a.FItemClassID=4