SQL Zeilen Verketten
Hallo zusammen,
vermutlich eine simple Übung für einige von euch aber ich stehe irgendwie auf dem Schlauch.
Es geht darum, dass ich eine SQL Abfrage habe die pro Kunden Nr. mehrer Text Zeilen ausgibt. diese Textzeilen würde ich gerne Pro Kunden Nummer verketten.
Kann mir jmd auf die Sprünge helfen ?
Text KundenNr Zeile "Ergebnis Final"
Beispiel 12345 0 Beispiel Für Admin.de
Für 12345 1
ADMIN 12345 2
.de 12345 3
Ein 98765 0 Ein Weiteres Beispiel Für Admin.de
Weiteres 98765 1
Beispiel 98765 2
Für 98765 3
Admin 98765 4
.de 98765 5
Ja, ich habe die verschiedesten Möglichkeiten im Netz gefunden.
Allerdings bekomme ich es irgendwie nicht gebacken Sorry ( ich hoffe es liegt nicht an der Hitze die hier herrscht)
Vielen Dank vorab.
Beste Grüße
vermutlich eine simple Übung für einige von euch aber ich stehe irgendwie auf dem Schlauch.
Es geht darum, dass ich eine SQL Abfrage habe die pro Kunden Nr. mehrer Text Zeilen ausgibt. diese Textzeilen würde ich gerne Pro Kunden Nummer verketten.
Kann mir jmd auf die Sprünge helfen ?
Text KundenNr Zeile "Ergebnis Final"
Beispiel 12345 0 Beispiel Für Admin.de
Für 12345 1
ADMIN 12345 2
.de 12345 3
Ein 98765 0 Ein Weiteres Beispiel Für Admin.de
Weiteres 98765 1
Beispiel 98765 2
Für 98765 3
Admin 98765 4
.de 98765 5
Ja, ich habe die verschiedesten Möglichkeiten im Netz gefunden.
Allerdings bekomme ich es irgendwie nicht gebacken Sorry ( ich hoffe es liegt nicht an der Hitze die hier herrscht)
Vielen Dank vorab.
Beste Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 276033
Url: https://administrator.de/contentid/276033
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
10 Kommentare
Neuester Kommentar
Da du keinen Ansatz und kein Wunschergebnis gepostet hast, poste ich auch mal nur einen Link zu einer Lösung von der ich glaube das du sie suchst:
http://stackoverflow.com/questions/17591490/how-to-make-a-query-with-gr ...
Es geht im Prinzip darum Text durch verketten zu aggregieren. Dazu gibt es in MSSQL keine direkte Funktion, in MySQL gibt es z.B. GROUP_CONCAT. In MSSQL gibt es den gängigen Weg über XML PATH, siehe Link.
http://stackoverflow.com/questions/17591490/how-to-make-a-query-with-gr ...
Es geht im Prinzip darum Text durch verketten zu aggregieren. Dazu gibt es in MSSQL keine direkte Funktion, in MySQL gibt es z.B. GROUP_CONCAT. In MSSQL gibt es den gängigen Weg über XML PATH, siehe Link.
bin mal so frei ...
SELECT KDST.K2TEXT AS Text,
KDST.KDKDNR AS KundenNr,
KDST.KDNAM1 AS Kunde,
KDST.KDORT AS KundenOrt,
KDST.KDVNR AS KundenVertreterNr,
KDST.KDLAND AS KundenLand,
test.dbo.vwSchl_Vertreter.Vertreter,
KDST.HEADERTXT AS Textbaustein,
KDST.K2POS AS Zeile,
KDST.KDNAM2,
KDST.KDNAM3,
KDST.KDSTR,
KDST.KDPLZ
FROM OPENQUERY(test_ODBC,
'SELECT KDST.* , KDST2.*, KDST2LF.K2TEXT as HeaderTxt
FROM test.KDST2 KDST2
INNER JOIN test.KDST KDST ON KDST.KDFA = KDST2.K2FA
AND KDST2.K2KDNR = KDST.KDKDNR
INNER JOIN test.KDST2LF KDST2LF ON KDST2LF.K2BANR = KDST2.K2BANR
AND KDST2LF.K2SPRA = KDST2.K2SPRA
AND KDST2LF.K2KDNR = KDST2.K2KDNR
AND KDST2LF.K2FA = KDST2.K2FA
WHERE KDST2.K2FA = 1')
AS KDST
INNER JOIN test.dbo.vwSchl_Vertreter ON KDST.KDVNR = test.dbo.vwSchl_Vertreter.VNR
WHERE (KDST.HEADERTXT = 'lieferanweisung')
lese ich das richtig, dass der zu verbindende Text in KDST.K2TEXT und die Zeilennummer in KDST.K2POS stehen?
Aus welcher Tabelle stammen diese Zeilen KDST, KDST2 oder KDST2LF?!?
Ich würde die Aggregierung schon in der OPENQUERY-Klausel unterbringen.
Und da es sich scheinbar um MSSQL handelt wird der Weg nur über XML PATH wie von Ukulele-7 schon geschrieben.
An dem Punkt bin ich leider raus.
G Jörg
Aus welcher Tabelle stammen diese Zeilen KDST, KDST2 oder KDST2LF?!?
Ich würde die Aggregierung schon in der OPENQUERY-Klausel unterbringen.
Und da es sich scheinbar um MSSQL handelt wird der Weg nur über XML PATH wie von Ukulele-7 schon geschrieben.
An dem Punkt bin ich leider raus.
G Jörg
... ich habe mir XML PATH mal angesehen und so schwer ist das ja nicht.
Versuchsweise würde ich Dir das zusammenbauen. Dazu müsste man aber genau wissen in welcher Tabelle die zu verkettenden Texte und Zeilennummer stecken. Also am Besten wie Ukulele-7 schon schrieb das OPENQUERY-SELECT nicht mit * sondern mit expliziten Spaltennamen posten.
G Jörg
Versuchsweise würde ich Dir das zusammenbauen. Dazu müsste man aber genau wissen in welcher Tabelle die zu verkettenden Texte und Zeilennummer stecken. Also am Besten wie Ukulele-7 schon schrieb das OPENQUERY-SELECT nicht mit * sondern mit expliziten Spaltennamen posten.
G Jörg