AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Abfrage (Daten aus Verknüpfungstabelle mit ausgeben?)
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage (Daten aus Verknüpfungstabelle mit ausgeben?)

Ein Thema von sunfy · begonnen am 14. Dez 2005 · letzter Beitrag vom 17. Dez 2005
 
sunfy

Registriert seit: 27. Apr 2004
22 Beiträge
 
#1

SQL-Abfrage (Daten aus Verknüpfungstabelle mit ausgeben?)

  Alt 14. Dez 2005, 17:14
Datenbank: Access • Version: 2000 • Zugriff über: ADO Connection
Hi Leutz,
Ich habe drei Tabellen.

SQL-Code:
Kathegorie1
--------------------
Kath1_ID AutoWert
Kath1_Datum Datum
... usw

Person
--------------------
Pers_ID AutoWert
Pers_Name Text

Pers_b_Kath1
--------------------
Pers_b_Kath1_ID AutoWert
Pers_ID Zahl
Kath1_ID Zahl
Pers_b_Kath1_Wertung Ja/Nein

Die Tabellen Kathegorie1 und Person sind über die Tabelle Pers_b_Kath1 verknüpft.
Es gibt verschiedene Ereignisse und ich möchte alle Personen mit dem Datum deren jewiligen letzten Anwesenheit bei einem Ereignis in der Kathegorie 1 ausgeben.
Personen die noch keine Verknüpfung zu Kath1 haben also noch bei keinem Ereignis der Kath 1 waren sollen auch mit aufgelistet werden, das Datumsfeld dann aber entsprechend leer bleiben.


kleines Beispiel:
SQL-Code:
Tabelle Person Tabelle Kathegorie 1 Tabelle Pers_b_Kath1

P_ID P_Name Kath1_ID Kath1_Datum PbK1_ID P_ID K_ID PbK_Wertung
-------------- ---------------------- --------------------------------
1 Peter 10 10.12.2005 20 1 10 True
2 Fritz 11 11.12.2005 21 1 11 False
3 Gustav 12 12.12.2005 22 2 11 True
                                            23 2 12 True
Zum Schluss soll eine Tabelle herauskommen in der steht:
SQL-Code:
P_ID P_Name Kath1_Datum Pbk_Wertung
--------------------------------------------
 1 Peter 11.12.2005 False
 2 Fritz 12.12.2005 True
 3 Gustav
Diese Tabelle besagt uns,
das Peter das letzte mal bei einem Ereignis der Kath1 am 11.12.2005 war, die Wertung = False ist
das Fritz das letzte mal bei einem Ereignis der Kath1 am 10.12.2005 war, die Wertung = True ist
das Gustav noch bei keinem Ereigniss der Kath1 dabei war.

Mit der folgenden Abfrage lese ich die Daten aus den Tabellen aus:
SQL-Code:
SELECT Max(Kathegorie1.Kath1_Datum) AS Kath1_Datum,
       Person.Pers_ID,
       Person.Pers_Name,
       Person.Pers_Vorname
       
FROM Person LEFT JOIN (Pers_b_Kath1 LEFT JOIN Kathegorie1
                                    ON Kathegorie1.Kath1_ID = Pers_b_Kath1.Kath1_ID)
            ON Person.Pers_ID = Pers_b_Kath1.Pers_ID
            
GROUP BY Person.Pers_ID,
         Person.Pers_Name,
         Person.Pers_Vorname
         
ORDER BY Max(Kathegorie1.Kath1_Datum);
Diese Abfrage funktioniert auch wunderbar, doch wie kann ich noch die Daten die zusätzlich in der Verknüpfungstabelle also Pers_b_Kath1 drin stehen mit auslesen?
Wenn ich Pers_b_Kath1.Wertung mit in die Select Funktion schreibe, bekomme ich die Meldung, dass Pers_b_Kath1.Wertung nicht als Teil der Agregatfunktion eingeschlossen ist. Und wenn ich Pers_b_Kath1.Wertung mit in die Group By Klausel setze bekomme ich ja eine andere Ausgabe in der von jeder Person das letzte Ereignis von Kath1 mit Wertung = true und von derselben Person das letzte ereignis mit Wertung = false

SQL-Code:
P_ID P_Name Kath1_Datum Pbk_Wertung
--------------------------------------------
 1 Peter 10.12.2005 True
 1 Peter 11.12.2005 False
 2 Fritz 12.12.2005 True
 3 Gustav
Wie kann ich also die Daten der Verknüpfungstabelle ausgeben, ohne diese mit in die GOUP BY klausel aufnehmen zu müssen?
Gruß Sunfy
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz