I have the following table in SQL Server 2008:
CREATE TABLE tbl (ID INT, dtIn DATETIME2, dtOut DATETIME2, Type INT)
INSERT tbl VALUES
(1, '05:00', '6:00', 1),
(2, '05:00', '7:00', 1),
(3, '05:01', '8:00', 1),
(4, '05:00', '8:00', 1),
(5, '05:00', '6:00', 2),
(6, '05:00', '7:00', 2)
that selects IDs of all records of the same type, with the same dtIn date, ordered by stOut in ascending order:
SELECT DISTINCT tbl.id FROM tbl
LEFT JOIN tbl AS t1
ON tbl.type = t1.type AND
tbl.dtIn = t1.dtIn
ORDER BY tbl.dtOut ASC
But it gives me an error:
ORDER BY items must appear in the select list if SELECT DISTINCT is
specified
I tried putting that ORDER BY in different places and it all doesn’t seem to work. What am I doing wrong here?
When you narrow it down to individual id’s, you create the possibility that each id might have more than one
dtOutassociated with it. When that happens, how will Sql Server know which order to use?You could try:
However, as I mentioned above this can open the possibility of having the same id listed more than once, if it matches to more than one record on the right-side table.