Try this:DECLARE @Quote TABLE(Bid INT, Offer INT, SourceId INT, Date DATETIME)INSERT @QuoteSELECT 99, 103, 2, '3/20/2007 11:58:00 AM'UNION ALL SELECT 100, 103, 4, '3/20/2007 12:34:00 PM'UNION ALL SELECT 99, 102, 5, '3/20/2007 1:12:00 PM'UNION ALL SELECT 99, 102, 6, '3/20/2007 2:20:00 PM'UNION ALL SELECT 99, 102, 15, '3/20/2007 4:15:00 PM'UNION ALL SELECT 103, 105, 15, '3/20/2007 6:51:00 PM'UNION ALL SELECT 103, 105, 18, '3/20/2007 8:46:00 PM'UNION ALL SELECT 98, 103, 11, '3/21/2007 12:21:00 PM'UNION ALL SELECT 99, 104, 14, '3/21/2007 2:24:00 AM'UNION ALL SELECT 97, 103, 14, '3/21/2007 11:29:00 AM'UNION ALL SELECT 97, 103, 19, '3/21/2007 11:49:00 AM'UNION ALL SELECT 97, 103, 19, '3/21/2007 1:22:00 PM'UNION ALL SELECT 99, 103, 2, '3/22/2007 1:38:00 PM'UNION ALL SELECT 100, 104, 11, '3/22/2007 2:23:00 PM'UNION ALL SELECT 100, 104, 14, '3/22/2007 4:51:00 PM'UNION ALL SELECT 101, 104, 36, '3/22/2007 4:54:00 PM'UNION ALL SELECT 101, 104, 9, '3/23/2007 6:30:00 PM'UNION ALL SELECT 103, 106, 11, '3/23/2007 6:46:00 PM'UNION ALL SELECT 99, 105, 12, '3/23/2007 11:34:00 PM'UNION ALL SELECT 103, 105, 14, '3/23/2007 9:23:00 PM'UNION ALL SELECT 97, 104, 36, '3/23/2007 12:35:00 PM'UNION ALL SELECT 97, 104, 36, '3/23/2007 2:34:00 PM'SELECT *FROM ( SELECT Bid, Offer, SourceID, Date FROM ( SELECT Bid, Offer, SourceID, Date, ROW_NUMBER() OVER (PARTITION BY DATEADD(DAY, DATEDIFF(DAY, 0, Date), 0), SourceID ORDER BY Date DESC) AS RowNum FROM @Quote WHERE SourceID IN (11, 14, 36) ) AS A WHERE RowNum = 1 UNION SELECT Bid, Offer, SourceID, Date FROM ( SELECT Bid, Offer, SourceID, Date, ROW_NUMBER() OVER (PARTITION BY DATEADD(DAY, DATEDIFF(DAY, 0, Date), 0) ORDER BY Date DESC) AS RowNum FROM @Quote WHERE SourceID NOT IN (11, 14, 36) ) AS B WHERE RowNum = 1 ) AS TempORDER BY DATEADD(DAY, DATEDIFF(DAY, 0, Date), 0), SourceID