2014-10-05 1 views
-1

У меня есть таблица вроде этого:Group, то в таблице уникального идентификатор

+---------------------+-------------+-----------------------------------+ | ID| Subject| Message | Create date | Message_U_ID | +----------------------+-------------+-----------------------------------+ | 1 | TEST1 | text1 | 2014-10-01..| 8f918db316f64c638b7b6d1fcd3c0ea3 | | 2 | TEST1 | text1 | 2014-10-01..| 8f918db316f64c638b7b6d1fcd3c0ea3 | | 3 | TEST1 | text1 | 2014-10-01..| 8f918db316f64c638b7b6d1fcd3c0ea3 | | 4 | TEST2 | text2 | 2014-10-02..| cb648984779b4af9bc04d9de7fc5939b | | 5 | TEST2 | text2 | 2014-10-02..| cb648984779b4af9bc04d9de7fc5939b | | 6 | TEST3 | text3 | 2014-10-03..| bb43ea1de81340bb95320217dcd6363b | +------------+---------+-------------+-----------------------------------+

ID является уникальным идентификатором сообщения. Message_U_ID - уникальный идентификатор, который генерирует, тогда я отправляю сообщение в группу (активный каталог). Я хочу получить Subject и Message (только для каждого Message_U_ID). Результат должен быть таким:

+---------------------+-------------+-----------------+ | Subject| Message | Message_U_ID | +----------------------+-------------+-----------------+ | TEST1 | text1 | 8f918db316f64c638b7b6d1fcd3c0ea3 | | TEST2 | text2 | cb648984779b4af9bc04d9de7fc5939b | | TEST3 | text3 | bb43ea1de81340bb95320217dcd6363b | +------------+---------+-------------+-----------------+

Стараюсь GROUO BY и DISTINCT, но я не могу получить хороший результат.

+0

Первый, естественно, будет один с самой дате создания, но это выглядит как дата создания одинакова для всех записей с тот же Message_U_ID? Если да, то что вы считаете первой записью? – Guffa

ответ

2

Лучший способ сделать это в SQL Server использует row_number():

selet t.* 
from (select t.*, 
      row_number() over (partition by message_u_id order by create_date) as seqnum 
     from table t 
    ) t 
where seqnum = 1; 
Смежные вопросы