このデータを収集するために、4 つの異なるテーブルからプルしています。必要な情報は返されていますが、アイテムが通過した WorkCenterID の数に応じて複製されています。最大のワーク センター ID のみを返すようにします。
コードは次のとおりです。
SELECT PLT.PLT_ItemID
, SUM(PLD.PLD_IssueQty) AS Issued
, WKO.WKO_WorkOrderID
, WKO.WKO_RequiredQty
, WKO.WKO_CompleteQty
, WKO.WKO_RequiredQty - WKO.WKO_CompleteQty AS openbalance
, PLT.PLT_QtyPerAssy
, (WKO.WKO_CompleteQty * PLT.PLT_QtyPerAssy - SUM(PLD.PLD_IssueQty)) * - 1 AS WIP
, WKO.WKO_ItemID
, WKO.WKO_StatusCode
, WKO.WKO_LastWorkDate
, WOO.WOO_WorkCenterID
FROM PLT
INNER JOIN PLD ON PLT.PLT_RecordID = PLD.PLD_PLT_RecordID
INNER JOIN WKO ON PLT.PLT_WorkOrderID = WKO.WKO_WorkOrderID
LEFT OUTER JOIN WOO ON PLT.PLT_WorkOrderID = WOO.WOO_WorkOrderID
WHERE (WKO.WKO_StatusCode = N'Released')
AND (PLT.PLT_ItemID = '1700-0535501-01')
GROUP BY PLT.PLT_ItemID
, WKO.WKO_WorkOrderID
, WKO.WKO_RequiredQty
, WKO.WKO_CompleteQty
, PLT.PLT_QtyPerAssy
, WKO.WKO_ItemID
, WKO.WKO_LastWorkDate
, WOO.WOO_WorkCenterID
, WKO.WKO_StatusCode
HAVING (SUM(PLD.PLD_IssueQty) = WKO.WKO_RequiredQty * PLT.PLT_QtyPerAssy)
ORDER BY WKO.WKO_WorkOrderID
結果は次のとおりです。
PLT_ItemID Issued WKO_WorkOrderID WKO_RequiredQty WKO_CompleteQty openbalance PLT_QtyPerAssy WIP WKO_ItemID WKO_StatusCode WKO_LastWorkDate WOO_WorkCenterID
1700-0535501-01 10 WO43620 10 10 0 1 0 9121-VA2-M Released 2011-10-17 00:00:00.000 1010
1700-0535501-01 10 WO43620 10 10 0 1 0 9121-VA2-M Released 2011-10-17 00:00:00.000 110
1700-0535501-01 10 WO43620 10 10 0 1 0 9121-VA2-M Released 2011-10-17 00:00:00.000 810
1700-0535501-01 2 WO53259 2 2 0 1 0 9120-DE45R-M Released 2012-03-05 00:00:00.000 110
1700-0535501-01 2 WO53259 2 2 0 1 0 9120-DE45R-M Released 2012-03-05 00:00:00.000 810
1700-0535501-01 6 WO53697 6 6 0 1 0 9120-DE45-M Released 2012-03-30 00:00:00.000 110
1700-0535501-01 6 WO53697 6 6 0 1 0 9120-DE45-M Released 2012-03-30 00:00:00.000 810
1700-0535501-01 5 WO86275 5 0 5 1 5 9121-VA2-M Released 2013-10-18 00:00:00.000 110