Laden...

SQL Statement JOIN mit Concat aller Kind Felder

Erstellt von baer999 vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.063 Views
B
baer999 Themenstarter:in
375 Beiträge seit 2007
vor 9 Jahren
SQL Statement JOIN mit Concat aller Kind Felder

Hallo,

ich habe eine SQL Server DB und möchte eine Tabelle Kunden mit Telefonnummern verknüpfen.
Im SELECT möchte ich als Resultat pro Kunde eine Zeile zurückbekommen + eine Spalte mit allen Telefonnummern (getrennt mit ENTER oder SEMICOLON).

Geht das, falls ja wie?

Hier mein bisheriges Statement:

SELECT DISTINCT 
                         customer.City, customer.Company, customer.Cus_ID, customer.Cus_Nr, customer.Email, customer.Firstname, customer.Lastname, 
                         customer.Postcode, customer.Street
FROM            customer INNER JOIN
                         phone ON customer.Cus_ID = phone.Cus_ID
WHERE        (phone.Prefix LIKE @Text) OR
                         (customer.Firstname LIKE @Text)

thx

849 Beiträge seit 2006
vor 9 Jahren

Hallo,

das ist eher eine Sache, um sie im Code zu behandeln. Geht auch auf Datenbankseite (TSQL). Wenn ich mich nicht irre hätte es auf Oracle mit Decode geklappt, aber imho gibts den Befehl auf SqlServer nicht, und das ist auch gut so 😉

D
233 Beiträge seit 2008
vor 9 Jahren

LISTAGG wäre es gewesen. 😉 Du kannst XML PATH als Lösung verwenden, um Strings in einer Spalte zu gruppieren und zu konkatenieren.

849 Beiträge seit 2006
vor 9 Jahren

Hast recht, ist lange her 😃 Sql ist ja sowas von out 😃

B
baer999 Themenstarter:in
375 Beiträge seit 2007
vor 9 Jahren

Habe es auch im Code behandelt indem ich über alle Ergebnisszeilen eine Schleife machte und jeweils die Telefonnummer per SQL dazugelesen habe und in die Spalte geschrieben / konkatiniert habe.

Allerdings war es mega langsam (mehrere 1000 Zeilen Ergebnis mit je einer Phone Abfrage...).

Was meint ihr sonst mit "im Code behandeln"?

Gibt es da performantere Lösungen?

849 Beiträge seit 2006
vor 9 Jahren

Vielleicht solltest Du in diesem Fall über Paging nachdenken.. Wer brauch auf einen schlag mehrere 1000 Einträge auf einem Windows Phone?

3.825 Beiträge seit 2006
vor 9 Jahren

Beim Lesen mit einem DataReader sollte das recht schnell gehen, auch bei mehreren Tausend Zeilen.

unconnected : Es geht hier im eine Desktop-Anwendung, nicht um eine Windows Phone Anwendung.

Meine Anwender wollen auch oft viele Einträge auf einmal sehen, Paging gibt es deshalb bei mir nicht.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

849 Beiträge seit 2006
vor 9 Jahren

Stimmt hatte "(mehrere 1000 Zeilen Ergebnis mit je einer Phone Abfrage...)." falsch gedeutet.
Aber das ändert trotzdem nichts daran das selbst 1000 Zeilen für einen Desktop nicht auf einmal anzeigbar sind.

Ich stimme Dir aber zu das das eigentlich fix von statten gehen müsste.