Wie verwenden von GROUP BY verketten von Zeichenfolgen während das verbinden mehrerer Tabellen?
Ich bin bei mehreren Tabellen in die ich möchte eine Spalte mit Wert in Zeile entsprechend TechnicianName
:
-
Ich habe 4 Tabellen
easy_tbljobcard
,easy_tbltechnician
undeasy_tblproblem
undeasy_tbltechnicianMaster
-
Ich bin immer
TechnicianName
in der 2. Spalte voneasy_tbltechnicianMaster
wotechnicianId
existieren ineasy_tbltechnician
-
Möchte ich
STUFF
in der 3. Spalte in meiner Abfrage (p.ProblemReported
)
Die aktuelle SQL-Anweisung:
SELECT j.CardID,
, (SELECT TechnicianName FROM easy_tbltechnicianMaster WHERE TechnicianID = t.technicianID) AS TechnicianName
, p.ProblemReported
FROM easy_tbljobcard AS j
JOIN easy_technician AS t ON t.CardID = j.CardID
LEFT JOIN easy_tblproblem AS p ON p.CardID = t.CardID
Abfrage Ergebnis:
╔══════════╦══════════════════╦═══════════════════╗
║ CardID ║ TechnicianName ║ ProblemReported ║
╠══════════╬══════════════════╬═══════════════════╣
║ 1 ║ AKBAR ║ PROBLEM A ║
║ 1 ║ AKBAR ║ PROBLEM B ║
║ 1 ║ AKBAR ║ PROBLEM C ║
║ 1 ║ ASANKA ║ PROBLEM A ║
║ 1 ║ ASANKA ║ PROBLEM B ║
║ 1 ║ ASANKA ║ PROBLEM C ║
╚══════════╩══════════════════╩═══════════════════╝
Das Ergebnis oben umgewandelt werden soll in diesem :
╔══════════╦══════════════════╦═════════════════════════════════╗
║ CardID ║ TechnicianName ║ ProblemReported ║
╠══════════╬══════════════════╬═════════════════════════════════╣
║ 1 ║ AKBAR ║ PROBLEM A, PROBLEM B, PROBLEM C ║
║ 1 ║ ASANKA ║ PROBLEM A, PROBLEM B, PROBLEM C ║
╚══════════╩══════════════════╩═════════════════════════════════╝
Wie Sie dies tun, während das verbinden mehrerer Tabellen ?
- möglich, Duplikat der Wie verwenden von GROUP BY verketten von Zeichenfolgen in SQL-Server?
- ich denke, es ist nicht doppelt.. kann Sie plz geben Sie mir ein Beispiel, in dem Sie die Gruppe von Spalten in einer Zeile mit Trennzeichen Speziell beim verbinden mehrerer Tabellen als ich sagte, während das verbinden mehrerer Tabellen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine CTE – common table expression zum speichern Ihrer temporären Ergebnis :
Dann
select
aus und verkettet alle Werte in der Spalte mit dem gleichent.techName
undt.CardID
in einer Reihe mitfor xml path('')
und nach ersetzen des ersten Komma,
mitstuff
:SQLFiddle
STUFF
und so weiter.