0
我有一個查詢,應該返回has many
關閉日期ShipmentNumber
列表MAX
CloseDate
列。 當我包含Notes
列時,我似乎在結果中獲得了多個ShipmentNumber
。SQL Server 2008 - 並不總是最大
表工作訂單
WorkOrderID, ProjectNumber, ShipmentNumber, CloseDate, WorkOrderNotes
1, 884, 123-01, 2016-04-01, Note A
2, 884, 123-01, 2016-04-02, Note B
3, 884, 123-02, 2016-04-01, Note A
表項目
ProjectNumber, Name
884, Project A
查詢:
SELECT p.id, p.name, WO.ShipmentNumber,MAX(WO.CloseDate) AS CloseDate,
CAST(WO.WorkOrderNotes AS NVARCHAR(100)) AS WorkOrderNotes
FROM DA.dbo.WorkOrders AS WO
LEFT JOIN Projects.dbo.project_primary AS p ON p.id = WO.ProjectNumber
WHERE WO.CloseDate >= '2016-03-01'
AND WO.CloseDate IS NOT NULL
GROUP BY WO.ShipmentNumber, p.name, p.id, CAST(WO.WorkOrderNotes AS NVARCHAR(100)) ;
結果:
884, Project A, 123-01, 2016-04-01, Note A <-- Should not be here
884, Project A, 123-01, 2016-04-02, Note B
884, Project A, 123-02, 2016-04-01, Note A
可能是因爲你的左連接。 SQL LEFT JOIN關鍵字。 LEFT JOIN關鍵字返回左表(table1)中的所有行,右表中的匹配行(table2)。 – LearningPhase