Hallo zusammen!
Ich versuche gerade Daten abzurufen aus meinen SQL Tabellen. Irgendwie kriege ich aber keine Lösung gebastelt...
Ausgangssituation:
- Table_Kunden mit Spalten ID,Kundenname,Info
- Table_Pakete mit Spalten ID,Paketbezeichnung
- Table_Abholungen mit Spalten ID,Kunden,Pakete
In Table_Abholungen sind in den Spalten Kunden und Pakete werte wie
1
1,55
2,32,40
Diese Zahlen sind die jeweiligen IDs zu den Kunden oder Paketen. Nun möchte ich nach paket 2 suchen. Das klappt soweit auch. Wenn ich nun in Spalte Pakete die IDs
1,2 habe und in Spalte Kunden die IDs 1,2,3 Dann erhalte ich in Spalte Pakete auch drei Werte undzwar den Suchwert.
Abfrage:
Gibt das aus
Richtig müsste sein
Ich weiß nicht wie ich den code korrigieren kann damit es das gewünschte Ergebnis erzielt.
Vielleicht hat ja einer von Euch eine gute Idee wie man das lösen könnte.
Vielen Dank und Grüße!
Ich versuche gerade Daten abzurufen aus meinen SQL Tabellen. Irgendwie kriege ich aber keine Lösung gebastelt...
Ausgangssituation:
- Table_Kunden mit Spalten ID,Kundenname,Info
- Table_Pakete mit Spalten ID,Paketbezeichnung
- Table_Abholungen mit Spalten ID,Kunden,Pakete
In Table_Abholungen sind in den Spalten Kunden und Pakete werte wie
1
1,55
2,32,40
Diese Zahlen sind die jeweiligen IDs zu den Kunden oder Paketen. Nun möchte ich nach paket 2 suchen. Das klappt soweit auch. Wenn ich nun in Spalte Pakete die IDs
1,2 habe und in Spalte Kunden die IDs 1,2,3 Dann erhalte ich in Spalte Pakete auch drei Werte undzwar den Suchwert.
Abfrage:
SQL-Abfrage
- SELECT
- Table_Abholungen.ID ID,
- STRING_AGG(Table_Kunden.Kundenname, ', ') AS Kunden,
- STRING_AGG(Table_Pakete.Paketbezeichnung, ', ') AS Pakete
- FROM Table_Abholungen Table_Abholungen
- JOIN Table_Kunden ON Table_Kunden.id IN (SELECT CAST(value AS INT) FROM STRING_SPLIT(Table_Abholungen.Kunden, ','))
- JOIN Table_Pakete ON Table_Pakete.id IN (SELECT CAST(value AS INT) FROM STRING_SPLIT(Table_Abholungen.Pakete, ','))
- WHERE Table_Pakete.Paketbezeichnung LIKE '%paket 2%' OR Table_Kunden.Kundenname LIKE '%paket 2%'
- GROUP BY Table_Abholungen.ID,Table_Pakete.Paketbezeichnung
Gibt das aus
599 | Paket 2, Paket 2, Paket 2 | Kunde A, Kunde B, Kunde C |
Richtig müsste sein
599 | Paket 1, Paket 2 | Kunde A, Kunde B, Kunde C |
Ich weiß nicht wie ich den code korrigieren kann damit es das gewünschte Ergebnis erzielt.
Vielleicht hat ja einer von Euch eine gute Idee wie man das lösen könnte.
Vielen Dank und Grüße!