我几乎可以肯定我以前遇到过这种情况并且只是有一个扩展的高级时刻,但我试图从 SQL 实例上跨 2 个数据库的三个不同表中提取工作订单数据并将其全部合并到一个报告中,我'正在寻找包含以下列的最终结果:
WO | 生产记录数量 | 库存数量 | 方差
方差部分很简单,我可以嵌套 select 语句,然后减去外部语句中的两个数量,但我遇到的问题是,当我将生产和库存表加入相应数据库中时,我最终得到了总和我所定位的列比它们应有的大得多
样本数据:
Work Order, Short P/N, and Long P/N in Work Order Table:
dba.1
WO ShortPN LongPN
152 1234 Part1
Short P/N, Quantity on hand, location, and lot # in inventory table:
dba.2
ShortPN Qty Loc Lot
1234 31 Loc1 456
1234 0 Loc2 456
1234 0 Loc4 456
1234 19 Loc1 789
1234 25 Loc4 789
Work Order, Long P/N, and production count of the last 5min in Production table:
dbb.3
WO LongPN Count
152 Part3 6
152 Part3 8
152 Part3 9
152 Part3 4
152 Part3 6
152 Part3 7
With this example I've tried:
SELECT 1.WO AS WO
,SUM(2.Qty) AS "Qty On Hand"
,SUM(3.Count) AS "Produced Qty"
FROM dba.1
INNER JOIN dbb.2 ON 1.ShortPN=2.ShortPN
INNER JOIN dbb.3 ON 1.WO = 3.WO
GROUP BY 1.WO
我还尝试从 3 中进行选择,在 WO 上加入 1 到 3,然后在 shortPN 上加入 2 到 1,并且两者都产生 SUM() 数字比它们应有的指数高(即应该是 15,xxx 变成了2,000,000),但是如果我从报告中删除一个数据点并仅选择库存或生产数量,我会得到正确的最终结果。我发誓我以前遇到过这个问题,但是我一生都不记得它是如何解决的,如果这也是一个重复的问题,对不起,通过搜索找不到任何东西。
提前感谢您的帮助,非常感谢。