Member 11658469 Ответов: 1

Oracle query для извлечения данных в виде отдельных данных


00089079/3	38956761	A481411	UKR	PAROYYK	YARIY	4/13/2017 6:03:48 PM	0	Success:Account already exists at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	38979318	A481411	UKR	PAROYYK	YARIY	4/13/2017 6:01:51 PM	0	Success:Account already exists at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	39892709	A481411	UKR	PAROYYK	YARIY	4/13/2017 5:55:15 PM	0	Success:Account already exists at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	38025192	A481411	UKR	PAROYYK	YARIY	4/13/2017 5:53:34 PM	0	Success:Account already exists at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	32118459	A481411	UKR	PAROYYK	YARIY	4/13/2017 5:52:17 PM	0	Success:Account already exists at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	32379150	A481411	UKR	PAROYYK	YARIY	4/13/2017 5:50:49 PM	0	Success:Account already exists at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	33279150	A481411	UKR	PAROYYK	YARIY	4/13/2017 5:48:20 PM	21	Fail:ServiceID:97333279150  is not available at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	38731029	A481411	UKR	PAROYYK	YARIY	4/13/2017 5:47:09 PM	0	Success:Account already exists at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	38917455	A481411	UKR	PAROYYK	YARIY	4/13/2017 5:45:55 PM	0	Success:Account already exists at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller	
00089079/3	39146100	A481411	UKR	PAROYYK	YARIY	4/13/2017 5:38:33 PM	0	Transaction has been completed successfully:Account Creation was successful at CRM.AccountId:1-3X9KAL2.The request is accepted for Order Creation at CRM	SIMSIM	RESELLER						Reseller
Все данные под одним 00089079/3, но разные мобильные номера.Пожалуйста,помогите получить данные с помощью oracle query,чтобы данные были в виде одной строки, но мобильный номер не будет отображаться как(m1, m2, m3..)

Что я уже пробовал:

Я использовал LISTAGG, но это не выборка

CHill60

Сообщение кода, который вы использовали, "я использовал LISTAGG, но он не извлекает" не является полезным описанием ни вашего кода, ни вашей проблемы

1 Ответов

Рейтинг:
0

CHill60

Вы пытаетесь создать "список, разделенный запятыми" из нескольких строк.

"Лучший" способ сделать это в Oracle зависит от версии, которую вы установили. Как вы уже сказали, "LISTAGG, но это не выборка", я могу только предположить, что версия, которую вы используете, предшествует выпуску 11G 2.

На этом нить[^] есть альтернативные несколько перечисленных методов, я предлагаю начать с принятого решения.


Member 11658469

Я попытался Listagg с разделителем-запятой, но на выходе я получил

Col1 Col2 Col3
00089079/3,00089079/3 39146100,38917455 А481411,А481411

Вот и col2 разные, но col1 и усилителя; amp; Кол3 такие же.Мне нужен вывод как
00089079/3 39146100,38917455 A481411

CHill60

Опубликуйте код, который вы использовали

Member 11658469

ВЫБЕРИТЕ LISTAGG(REGISTEREDMOBILENO, ',') ВНУТРИ ГРУППЫ (ЗАКАЗ ПО CUSTOMERID) КАК REGISTEREDMOBILENO,LISTAGG(CPRCR, ',') ВНУТРИ ГРУППЫ (ЗАКАЗ ПО CPRCR) КАК CPRCR
ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ РРЛ.MOBILENO КАК REGISTEREDMOBILENO, ГРН.CPRCR ОТ RESELLER_REGISTRATION_LOG РРЛ
Левое внешнее соединение RESELLER_SECURITY RS ON RRL.REGISTEREDBY = RS.CPRCR, где RRL.LOGDATE между to_date('04/01/2017', 'mm/dd/yyyy') И to_date('04/30/2017', 'mm/dd/yyyy')) ГРУППА ПО СЛР

Здесь мобильный номер отличается, например, если у нас есть 3 мобильных номера, то СЛР также будет приносить 3 раза .Если разные СЛР нужно принести разные

Например:

МОБ КНР
MOb1,Mob2,Mob3 CPR1

Если 2 СЛР будут там нужны выходные данные вот так

МОБ КНР
МОБ1,МОБ2,МОБ3 КПР1,КПР2

CHill60

Таким образом, вы всегда хотите получить только одну строку, где column1-это список мобильных номеров, а column2-список CPR. Странно, но если это то, что вы хотите, то вам, вероятно, придется объединить два запроса - один, чтобы получить список мобильных номеров, а другой, чтобы получить список СЛР. Затем вы можете объединить эти подзапросы, чтобы получить данные в нужном формате.
В данный момент я не могу получить доступ ни к SQL Fiddle, ни к Oracle, поэтому не могу опубликовать код на нем - извините