0

私は以前にこれに遭遇したことがあり、シニアの瞬間を延長していることはほぼ確実ですが、SQL インスタンスの 2 つのデータベースにまたがる 3 つの異なるテーブルから作業指示データを取得し、すべてをレポートに結合しようとしています。 ' 次の列を含む最終結果を探しています。

WO | 生産記録数量 | 在庫数 | 分散

Variance の部分は簡単です。select ステートメントをネストして、外側のステートメントで 2 つの数量を減算するだけで済みますが、私が直面している問題は、生産テーブルと在庫テーブルを対応するデータベースに結合するときに合計が得られることです。私が対象としている列のうち、本来あるべきものよりもはるかに大きい

サンプルデータ:

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) ですが、レポートからデータ ポイントの 1 つを削除し、在庫または生産数量のみを選択すると、正しい最終結果が得られます。私は以前にこれに出くわしたことを誓いますが、私の人生ではそれがどのように解決されたか思い出せません。それが重複した質問である場合は申し訳ありませんが、検索しても何も見つかりませんでした.

助けてくれてありがとう、それは大歓迎です。

4

1 に答える 1

1
于 2012-11-30T14:16:25.747 に答える