Ich habe eine Abfrage, die die MAX
CloseDate
aus einer Tabelle, dass has many
schließen Termine, grouped by
die ShipmentNumber
Spalte zurückgeben sollte. Ich scheine mehr als eine ShipmentNumber
in den Ergebnissen zu bekommen, wenn ich die Notes
Spalte einschließe.SQL Server 2008 - nicht immer Max Erste
Tisch Arbeitsaufträgen
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
Tabelle Projekte
ProjectNumber, Name
884, Project A
Abfrage:
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)) ;
Ergebnisse:
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
sein könnte, weil der linken Seite kommen. SQL LINKES JOIN-Schlüsselwort. Das Schlüsselwort LEFT JOIN gibt alle Zeilen aus der linken Tabelle (table1) mit den übereinstimmenden Zeilen in der rechten Tabelle (table2) zurück. – LearningPhase