MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 07.02.2019, 22:17   #1
MS-Apoc
Neuer Benutzer
Neuer Benutzer
Standard Admin : MSSQL - Probleme mit query von 2 Tabellen

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
Vielleicht hat mir jemad eine Idee wie ich das angehen kann.

Vielen Dank & Grüße
MS-Apoc ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.02.2019, 19:32   #2
stendate
MOF User
MOF User
Standard

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
stendate ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:06 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.