我從4個不同的表中獲取這些數據。我想要的信息正在返回,但是它的重複取決於項目已經通過的WorkCenterID的數量。我希望它只返回最大的工作中心ID。SQL Server 2008的一點過濾器/分組幫助
下面是代碼:
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
相關(來自同一OP):SQL Server 2008中的濾波(http://stackoverflow.com/q/18520563/211627) – JDB
您的預期成果是什麼? – EricZ