Dein Beispiel #2 hat mich eine Weile am Kopf kratzen lassen - ich dachte mir:"Du kannst nicht DISTINCT eine einzelne Spalte, was würde das bedeuten?" - bis ich begriff, was los ist.
Wenn Sie
SELECT DISTINCT(t.ItemNumber)
du bist nicht , trotz des Anscheins, der tatsächlich nach unterschiedlichen Werten von t.ItemNumber fragt ! Ihr Beispiel Nr. 2 wird tatsächlich genauso geparst wie
SELECT DISTINCT
(t.ItemNumber)
,
(SELECT TOP 1 ItemDescription
FROM Transactions
WHERE ItemNumber = t.ItemNumber
ORDER BY DateCreated DESC) AS ItemDescription
FROM Transactions t
mit syntaktisch korrekten aber überflüssigen Klammern um t.ItemNumber . Für die Ergebnismenge als Ganzes gilt DISTINCT gilt.
In diesem Fall, da Ihr GROUP BY Gruppen nach der Spalte, die tatsächlich variiert, erhalten Sie die gleichen Ergebnisse. Ich bin tatsächlich etwas überrascht, dass SQL Server dies nicht tut (in der GROUP BY Beispiel) darauf bestehen, dass die unterabgefragte Spalte in GROUP BY erwähnt wird Liste.