
期望结果是三列:物料代码,在库数,在购数
在库数是用dbo.ICInventory.FItemID分组后 SUM(dbo.ICInventory.FQty) 数量,筛选条件为dbo.t_Item.FItemClassID = 4
在购数为dbo.POOrderEntry.FItemID分组后 SUM(dbo.POOrderEntry.FQty) 数量,无筛选条件
求sql语句(带数据库名称"dba1"),谢谢!
------解决方案--------------------
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
------解决方案--------------------
改一下:
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
------解决方案--------------------
用这个试试:
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