Как получить сгруппированные сообщения, упорядоченные по дате SQL

Давайте притворимся, что у меня есть следующая таблица «сообщений»

ID (auto) Sender Receiver Msg Date (datetime) 1 Dave John Hi 01/01/2013 2 John Dave Hello 02/01/2013 3 James Dave U there? 02/02/2013 4 Dave James Yup 02/03/2013 5 Dave Simon Hey 02/03/2013 

Я хочу, чтобы список людей, с которыми Дэйв разговаривает, упорядочен по дате.

 Simon James John 

Я застрял в том, как группировать их, не включая «Дэйв» в одном запросе.

Большое спасибо.

Кажется, вам нужен отличный список людей, с которыми разговаривает Дэйв:

 select (case when receiver = 'Dave' then Sender else Receiver end) from messages m where 'Dave' in (Receiver, Sender) group by (case when receiver = 'Dave' then Sender else Receiver end) order max(date) desc; 
 SELECT Receiver FROM messages WHERE Sender = "Dave" AND Receiver NOT IN (SELECT Sender FROM messages WHERE Receiver = "Dave") UNION SELECT Sender FROM messages WHERE Receiver = "Dave" 

Это даст вам всех Дэйв отправил сообщение и получил сообщение от заказанного по дате.

 SELECT DISTINCT(Receiver) FROM messages WHERE Sender = 'Dave' ORDER BY date DESC