2014-10-28 3 views
0

У меня есть база данных Oracle 11 G.Сочетание записей, когда id одинаковый в Oracle

Моя таблица CHATUSERS выглядит следующим образом:

UserId - Identifier 
SeqNum - Order of chat conversation 
ChatText - Chat Text 
DateAdded - DateTime Chat conversation happened. 

Внутренний абонент может иметь несколько сеансов чата в день. Я хочу совместить весь ChatText на человека в день.

Пример:

UserId SeqNum DateAdded ChatText 
-------------------------------- 
1  1  28-OCT-14 Hey, How are You? 
1  2  28-OCT-14 Do you have a minute? 
1  3  28-OCT-14 Wanted to talk to you about something. 
1  1  25-OCT-14 Congratulations! 
1  2  25-OCT-14 on your promotion 

Так SELECT, запрос будет возвращать результаты в виде:

UserId, DateAdded and CompleteText 
1 28-OCT-14 Hey, How are You? Do you have a minute? Wanted to talk to you about something. 
1 25-OCT-14 Congratulations! on your promotion 

Как мне это сделать?

+0

Вы должны смотреть на LISTAGG(). – gmiley

+0

Какая версия 11g точно? Если вы находитесь на 11gR2, вы можете посмотреть в 'LISTAGG', если это 11gR1, ответ будет другим. –

+0

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production – Ram

ответ

0
select userid, dateadded, listagg(chattext, ' ') within group (order by seqnum) 
from chatusers 
group by userid, dateadded; 
Смежные вопросы