Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Mehrere Ergebnisse aus Unterabfrage zusammenfassen

Begonnen von noah, April 28, 2017, 17:13:46

⏪ vorheriges - nächstes ⏩

noah

Hallo,
ich stehe vor folgendem Problem und hoffe, dass mir hier jemand da weiterhelfen kann.
Ich habe eine Datenbank mit ca. 12 Tabellen, aus der ich die Daten per SQL hole und gefiltert in einem ListView anzeige. Die Spalten des Listview sind u.a. Name, Geschlecht, Bemerkungen, und auch Qualifikationen. Die Qualifikationen sind in zwei Tabellen gespeichert. In einer Tabelle (tblQualifikationen)  stehen alle möglichen Qualifikationen, und in der anderen (tblQualifikationenMA) quasi die Verknüpfung mit den Namen...

Tabelle tblPersonal:
ID     |     Name     |     Vorname

Tabelle tblQualifikationen:
ID     |     Qualifikation   

Tabelle tblQualifikationenMA
MAID |     QUALID


In der Tabelle tblQualifikationen sind im Moment ca. 20 Qualifikationen eingetragen, was sich aber auch noch ändern kann/wird. Die SQL-Syntax zum lesen der Daten sieht in etwa so aus:
SELECT P.Nachname + ', ' + P.Vorname AS PNAME FROM tblPersonal ...

Jetzt möchte ich zusätzlich zu dem Namen alle für den Mitarbeiter eingetragenen Qualifikationen in eine Spalte des ListView schreiben, dies versuche ich durch eine Unterabfrage hinzubekommen:
SELECT P.ID AS PID, P.Nachname + ', ' + P.Vorname AS PNAME,
(SELECT Q.QUALIFIKATION FROM tblQualifikationen Q INNER JOIN tblQualifikationenMA M WHERE M.MAID=P.ID) AS QUALIS
FROM tblPersonal WHERE ... ORDER BY ...

Da bekomme ich (logischerweise) den Fehler angezeigt, dass die Unterabfrage nur ein Ergebnis zurückgeben kann. Gibt es eine Möglichkeit, die Ergebnisse einer Abfrage direkt in SQL als ein String, z.B. kommagetrennt auszugeben?

Vielen Dank schon mal im Voraus...

Lachtaube

Grüße von der (⌒▽⌒)

noah

So, da bin ich wieder. Sorry, dass ich mich erst jetzt wieder melde, aber ich bin in den letzten Wochen nicht dazu gekommen, an dem Script weiter zu arbeiten.

So eine ähnliche Lösung habe ich hier auch gefunden, kriege sie aber nicht eingebaut.
Ich mache das jetzt mit einer 'Notlösung'. Die Daten, die ich in der Datenbank speichere sind aktuell noch in einer Excel-Tabelle gespeichert. Für den Import habe ich ein Script geschrieben, dass mir die Daten aus der einen Excel-Tabelle in ganz viele Access-Tabellen schreibt, so u.a. die vorhandenen Qualifikationen in die erwähnte Tabelle. Ich habe jetzt zusätzlich eine weitere Tabelle erstellt, in der die vorhandenen Qualifikationen als String eingetragen werden. So brauche ich für mein Listview nur die Daten aus der neuen Tabelle abrufen und habe den String vorliegen, wie ich ihn brauche. Wenn ich einen Datensatz bearbeite, muss anschließend nur noch ebenfalls der String neu geschrieben werden, was aber ja eine Kleinigkeit ist.

Irgendwann greife ich das Thema vielleicht noch einmal auf, aber eben nicht jetzt...
Vielen Dank trotzdem für die Hilfe.