Sql 如何将两个表中的数据合并到一个表中?
当我注释掉与Sales Line或Warehouse Entry表相关的所有行时,查询按预期工作。但当我按原样使用这个查询时;它返回的数据至少高5位 其思想是迭代Item表,获得库存量、销售数量和价值。我想我加入这些桌子的方式一定有问题。仓库条目和销售行表格都有多个条目,可以链接到I.[否] 正确的数据Sql 如何将两个表中的数据合并到一个表中?,sql,sql-server,tsql,join,Sql,Sql Server,Tsql,Join,当我注释掉与Sales Line或Warehouse Entry表相关的所有行时,查询按预期工作。但当我按原样使用这个查询时;它返回的数据至少高5位 其思想是迭代Item表,获得库存量、销售数量和价值。我想我加入这些桌子的方式一定有问题。仓库条目和销售行表格都有多个条目,可以链接到I.[否] 正确的数据 140003000007|61703.24000000000000000000|13623.801800|2459.17000000000000000000 试试这个。当您想使用sum或min
140003000007|61703.24000000000000000000|13623.801800|2459.17000000000000000000
试试这个。当您想使用sum或min函数聚合数据时,我建议您在子集中这样做。这样您就可以保持简单将WE和S条件移动到ON子句,以获得真正的左连接行为。@jarlh,谢谢,但数字仍然不正确。我将编辑我的代码你可以发布示例数据并期望结果吗?用内部连接替换左连接并删除。。。不是空的。。。行谢谢,但还是错了:/哎哟-这么多嵌套查询。如果必须多次重新运行查询,则不太好不太好。每个子集只返回所需的结果,因为where子句仅在子集中定义。这里只有1级的筑巢,无论如何,它不应该吓到你。谢谢@Sapi,你的查询工作已经完成,我不得不在这里和那里做一些更改,但是从你写它的速度和花我的时间来看,我不想看一件礼物无论如何,查询速度都很快
140003000007|204484537.36000000000000000000|13051602.124400| 2355884.86000000000000000000
140003000007|61703.24000000000000000000|13623.801800|2459.17000000000000000000
SELECT sumQuantityBase as [Quantity Sold],
minIP * sumQuantityBase as [Stock Value],
sumQuantityBase as [Quantity Stock]
FROM
(SELECT MIN(I.[IP Total (Manual)] )as minIP,
No_
FROM I
WHERE [No_] like '140003000007'
GROUP BY No_) MinI INNER JOIN
(SELECT SUM([Quantity]) as sumQuantity,
[Item No_]
FROM WE
WHERE [Location Code] = 'BU'
AND [Bin Code] <> 'SHIPPING'
AND [Bin Code] <> 'WORKSHOP'
AND [Bin Code] <> 'OUTBOX'
AND [Bin Code] <> 'CUT'
AND [Bin Code] <> 'VERZEND'
GROUP BY [Item No_] ) SumWE
ON MinI.[No_] = SumWE[Item No_] INNER JOIN
(SELECT SUM([Quantity (Base)]) as sumQuantityBase,
No_
FROM S
WHERE [Shipment Date] > '07/01/2015'
AND [Shipment Date] IS NOT NULL
AND [Document Type] = 1
GROUP BY No_ ) SumS
ON SumS.[No_] = MinI.[No_]