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
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#11

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

  Alt 16. Dez 2005, 22:03
SQL-Code:
SELECT Kathegorie1.Kath1_Datum, Person.Pers_ID, Person.Pers_Name, Person.Pers_Vorname, pk.Pers_b_Kath1_Wertung, pk.Pers_b_Kath1_Bemerkung
FROM Person LEFT JOIN (Pers_b_Kath1 pk LEFT JOIN Kathegorie1 ON pk.Kath1_ID = Kathegorie1.Kath1_ID) ON Person.Pers_ID = pk.Pers_ID

WHERE (((Kathegorie1.Kath1_Datum)=(

  SELECT Max(Kathegorie1.Kath1_Datum)
  FROM Kathegorie1, Pers_b_Kath1
  WHERE Pers_b_Kath1.Pers_ID = pk.Pers_ID
  and Kathegorie1.Kath1_ID=Pers_b_Kath1.Kath1_ID)))

ORDER BY Kathegorie1.Kath1_Datum;
Im Subselect muß die datumsmäßig aktuellste Kategorie zur gerade betrachteten Person ermittelt werden. Bei meinem "Vorposter" fehlte in der Unterabfrage leider jeder Bezug zur Person.
Ich hoffe, das passt jetzt. Garantieren will ich mal lieber nichts, prüf es lieber selbst noch mal nach.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#12

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

  Alt 16. Dez 2005, 22:18
Tja, das funktioniert zwar jetzt endlich.
Aber da sind dann nur die Personen drin, die auch in der Pers_b_Kath1 einen Eintrag haben.

Eigentlich ist das aber so eingestellt, dass alle Personen angezeigt werden sollen. Geht aber nicht.

Da sieht man mal wieder wie sch***** Access ist.

Ich habe jetzt drei Abfragen realisiert, die alle aufeinander aufbauen. Dann kann man das auch Access beibringen. Andere (richtige Datenbanken) können das in einer Abfrage.

Wie auch immer, probiers doch mal aus...

Abfrage "view_MaxDatum"
SQL-Code:
SELECT Pers_b_Kath1.Pers_ID,
       MAX(Kathegorie1.Kath1_Datum) AS [Max von Kath1_Datum]
FROM Kathegorie1
INNER JOIN Pers_b_Kath1
  ON Kathegorie1.Kath1_ID = Pers_b_Kath1.Kath1_ID
GROUP BY Pers_b_Kath1.Pers_ID;
Abfrage "view_MaxDatumInfos"
SQL-Code:
SELECT view_MaxDatum.Pers_ID,
       view_MaxDatum.[Max von Kath1_Datum],
       Pers_b_Kath1.Pers_b_Kath1_Wertung,
       Pers_b_Kath1.Pers_b_Kath1_Bemerkung
FROM (view_MaxDatum
      INNER JOIN Kathegorie1
        ON view_MaxDatum.[Max von Kath1_Datum] = Kathegorie1.Kath1_Datum)
INNER JOIN Pers_b_Kath1
  ON (Pers_b_Kath1.Pers_ID = view_MaxDatum.Pers_ID)
     AND (Kathegorie1.Kath1_ID = Pers_b_Kath1.Kath1_ID);
Eigentliche Abfrage
SQL-Code:
SELECT Person.Pers_ID,
       Person.Pers_Name,
       view_MaxDatumInfos.[Max von Kath1_Datum],
       view_MaxDatumInfos.Pers_b_Kath1_Wertung,
       view_MaxDatumInfos.Pers_b_Kath1_Bemerkung
FROM Person
LEFT JOIN view_MaxDatumInfos
  ON Person.Pers_ID = view_MaxDatumInfos.Pers_ID
ORDER BY Person.Pers_Name;
Da weden dann alle Personen ausgegeben, mit den jeweils letzten Informationen aus Pers_b_Kath1.

MfG
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#13

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

  Alt 16. Dez 2005, 22:28
SQL-Code:
SELECT Kathegorie1.Kath1_Datum, Person.Pers_ID, Person.Pers_Name, Person.Pers_Vorname, pk.Pers_b_Kath1_Wertung, pk.Pers_b_Kath1_Bemerkung
FROM Person LEFT JOIN (Pers_b_Kath1 pk LEFT JOIN Kathegorie1 ON pk.Kath1_ID = Kathegorie1.Kath1_ID) ON Person.Pers_ID = pk.Pers_ID

WHERE (((Kathegorie1.Kath1_Datum)=(

  SELECT Max(Kathegorie1.Kath1_Datum)
  FROM Kathegorie1, Pers_b_Kath1
  WHERE Pers_b_Kath1.Pers_ID = pk.Pers_ID
  and Kathegorie1.Kath1_ID=Pers_b_Kath1.Kath1_ID))

or pk.Pers_ID is null)

ORDER BY Kathegorie1.Kath1_Datum;
jetzt besser?
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#14

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

  Alt 16. Dez 2005, 22:32
Ja, das sieht doch gut aus.

Jetzt muss es nur noch sunfy gefallen.

Bis dann
Thorsten
  Mit Zitat antworten Zitat
sunfy

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

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

  Alt 17. Dez 2005, 00:56
Hey, ihr seid Klasse.

Vielen, vielen Dank.
Hab grad mal den letzten Code von Tomsel ausprobiert und der liefert genau das, was ich die ganze Zeit versucht habe hinzubekommen.
Wer mich jetzt erstmal die verschiedenen Varianten durchlesen, was genau ihr für Ideen hattet.

Die letzte Idee von Tomsel, eine Where Abfrage von einem Speziell auf das Maximale Datum ausgerichteten Join zu machen ist klasse, da wäre ich so schnell nicht drauf gekommen.

Die aufeinander aufbauenden Abfragen von Omata funktionieren auch wunderbar.
Werd Sie mir gleich nochmal in Ruhe anschauen um zu verstehen, was genau sie jeweils machen, hab ich jetzt auf Anhieb noch nicht ganz verstanden.

Aber nochmals vielen Dank.
Habt mir sehr weitergeholfen.

Gruß Sunfy
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz