încercarea de a lista detaliile clientului într-un rând într-o nouă vizualizare, desenarea informațiilor din două rânduri găsesc că primesc rânduri duplicate cu nuli

încercând să creeze o nouă vizualizare din alte 2 tabele, denumite informații despre clienți.

afirmația curentă citește

select c.customer_id, c.name, 
max(decode(cat.method_id, 'Phone', cat.value))phone,
max(decode(cat.method_id, 'Fax', cat.value))fax, 
max(decode(cat.method_id, 'Mobile', cat.value))mobile,
max(decode(cat.method_id, 'E-Mail', cat.value))email
from table_1 c, table_2 cat
where c.customer_id = cat.customer_id
group by c.customer_id, c.name

acum afirmația funcționează bine și totul pentru un client este pe un singur rând cu toate acestea, în cazul în care clientul are 2 înregistrări de numere de telefon, aș dori să fie concatinat în prima coloană de telefon, am încercat să rang valorile și să le utilizeze într-o subselect dar nu se pare că reușesc să lucreze împreună.

0
Încercați să publicați câteva date de probă pentru tabele și apoi ieșirea eșantionului. Veți primi cu siguranță un răspuns în acest sens.
adăugat autor Adrian Carneiro, sursa

1 răspunsuri

Caracteristică oracolă neocumentată numită WM_Concat

http://www.oracle-base.com/articles/misc/StringAggregationTechniques.php

Funcția 11g LISTAGG ar funcționa, de asemenea

0
adăugat
accepta raspunsul sau voteaza? : D
adăugat autor xQbert, sursa
wm_concat doar ceea ce am nevoie de genial
adăugat autor Mike, sursa