Ich habe zwei Tabellen, wo ich beiden beitrug, um die erste Ansicht zu erhalten, danach möchte ich GROUP_CONCAT
in einer Spalte tun, aber wir haben diese Funktion nicht in SQL Server .Concat mehrere Zeilen mit dynamischer Tabelle in SQL Server
Also habe ich hier einige Beispiele versucht, aber war mit meinem SQL nicht erfolgreich. Die gefundenen Beispiele verwenden immer eine Tabelle, um GROUP_CONCAT
zu generieren, aber ich habe kein Beispiel mit einem SQL-Ergebnis gefunden.
TableA:
| CityID | MasterID | Account |
+-----------------------------+
| 01 | 1234 | 1111 |
| 01 | 1234 | 2222 |
| 01 | 1234 | 3333 |
| 02 | 1234 | 4444 |
TableB:
| Account | Item | Price |
+------------------------+
| 1111 | A001 | 11,11 |
| 2222 | A001 | 11,11 |
| 3333 | A002 | 22,22 |
| 4444 | A002 | 22,22 |
| 5555 | A002 | 22,22 |
Erste SQL - Subselect:
SELECT *
FROM TableA, TableB
WHERE TableA.AccountID = TableB.AccountID
Ausgang:
| CityID | MasterID | Account | Account | Item | Price |
+------------------------------------------------------+
| 01 | 1234 | 1111 | 1111 | A0001 | 11,11 |
| 01 | 1234 | 2222 | 2222 | A0001 | 11,11 |
| 01 | 1234 | 3333 | 3333 | A0002 | 22,22 |
| 02 | 1234 | 4444 | 4444 | A0002 | 22,22 |
Zweite SQL - letzte Ansicht:
SELECT
MasterID, GROUP_CONCAT(Item)
FROM
(SELECT *
FROM TableA, TableB
WHERE TableA.AccountID = TableB.AccountID) table01
Ausgang:
| MasterID | Item |
+-----------------+
| 1234 | A0001,A002 |
[Schlechte Angewohnheiten zu treten: Verwenden von alten JOINs] (http://sqlblog.com/blogs/a aron_bertrand/archive/2009/10/08/bad-gewohnheiten-zu-kick-using-old-style-joins.aspx) - diese alte * durch Kommas getrennte Liste von Tabellen * style wurde durch die * richtige * ANSI ersetzt 'JOIN'-Syntax im ANSI - ** 92 ** SQL-Standard (** vor mehr als 20 Jahren **) und deren Verwendung wird abgeraten –