![]() |
|
![]() |
#1 |
![]() Neuer Benutzer |
![]() Hallo Forum,
ich bin neu hier deshalb erst mal hallo an alle hier. Folgendes Problem plagt mich gerade, vielleicht hat mir jemand eine Idee. Ausgangsituation: Ich habe 3 Tabellen Adresse,adrdef und Karten. Adresse sind Daten wie Mitgliedsnummer, Adresse usw. drin, in der Tabelle adrdef sind verschiedene Status drin wie Bezahlt usw. In der Tabelle Karten sind Karten für die Mitglieder drin die per Adressnummer (PK) die Tabellen miteinander verknüpft sind. Nun ist es so das ein Mitglied mehrere Karten haben kann, was ja auf der DB zumindest richtig ist. Was ich möchte: Ich möchte per query die Mitglieder rausholen samt den karten dazu. Mein query macht das allerdings sobald ein Mitglied mehrere Karten hat wird der Mitglied auch mehrmals jeweils zu der karte ausgegeben. Meine Ausgabe: Hans Müller Karte 1 Hans Müller Karte 2 Hans Müller Karte 3 Klaus Meier Karte 1 Markus Schmid Karte 1 Richtig wäre die Ausgabe damit ich weiterarbeiten kann. Hans Müller Karte1 Karte 2 Karte 3 Klaus Meier Karte 1 Markus Schmid Karte 1 Karte 2 Meine Query: Code: select dbo.Adresse.MITGLNR, dbo.Adresse.Vorname, dbo.Adresse.Nachname, dbo.adrdef.KennungE1, dbo.adrdef.KennungE2, dbo.MgVert.karte from dbo.Adresse, dbo.adrdef, dbo.MgVert where dbo.Adresse.Austritt IS NULL AND dbo.Adresse.AdrNr = dbo.adrdef.AdrNr AND dbo.Adresse.AdrNr = dbo.MgVert.AdrNr Vielen Dank & Grüße |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF User |
![]() Hallo,
du könntest die PIVOT-Funktion [1] verwenden: Code: SELECT Nachname, [Karte 1], [Karte 2], [Karte 3], [Karte 4], [Karte 5] FROM (select A.Nachname, AD.KennungE1 from Adresse A inner join adrdef AD on AD.AdrNr = A.ID) AS SourceTable PIVOT ( Max(KennungE1) FOR KennungE1 IN ([Karte 1], [Karte 2], [Karte 3], [Karte 4], [Karte 5]) ) AS PivotTable; Code: Nachname Karte 1 Karte 2 Karte 3 Karte 4 Karte 5 --------------------------------------------------------------------------------- Meier Karte 1 NULL NULL NULL NULL Müller Karte 1 Karte 2 Karte 3 NULL NULL Schmidt Karte 1 Karte 2 NULL NULL NULL [1] https://docs.microsoft.com/de-de/sql...ql-server-2017 |
![]() |
![]() ![]() |