AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL - Abfrage mit Max
Thema durchsuchen
Ansicht
Themen-Optionen

SQL - Abfrage mit Max

Ein Thema von HolgerCW · begonnen am 26. Sep 2007 · letzter Beitrag vom 27. Sep 2007
Antwort Antwort
Seite 2 von 2     12   
ken_jones

Registriert seit: 16. Mai 2005
Ort: Luzern
154 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

Re: SQL - Abfrage mit Max

  Alt 26. Sep 2007, 13:47
Du bist nahe dran, aber syntaktisch etwas im Schilf,
das hier entspricht etwa deinem SQL, einfach Oracle tauglich umgestellt:

SQL-Code:
select t1.auftragnr, t1.text, max(t2.datum)
from tabelle1 t1,
     tabelle2 t2
where t1.auftragnr = t2.auftragnr
and t2.datum < trunc(sysdate)
group by t1.auftragnr, t1.text
und um dein Beispiel zu testen:

SQL-Code:
select t1.auftragnr, t1.text, max(t2.datum)
from tabelle1 t1,
     tabelle2 t2
where t1.auftragnr = t2.auftragnr
and t2.datum < to_date('12.Oct.2007') --trunc(sysdate)
group by t1.auftragnr, t1.text
Das würde dann als Resultat folgendes ausspucken:

Code:
AUFTRAGNR TEXT   MAX(T2.DATUM)
1         test1   11.10.07
2         test2   11.10.07
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12

Re: SQL - Abfrage mit Max

  Alt 26. Sep 2007, 13:52
Zitat von HolgerCW:
So würde es klappen,

nur muss die Abfrage auf das Maximale Datum gehen..
Deshalb das DESC, also absteigend sortiert (größtes zuerst und wegen FIRST 1 eben nur eines). Um die Aufträge auseinanderzuhalten notfalls noch :

ORDER BY DATUM, AUFTRAGSNR
Gruß
Hansa
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#13

Re: SQL - Abfrage mit Max

  Alt 26. Sep 2007, 13:57
Zitat:

Das würde dann als Resultat folgendes ausspucken:

Code:
AUFTRAGNR TEXT   MAX(T2.DATUM)
1         test1   11.10.07
2         test2   11.10.07
-> Und genau das wollte ich ja nicht. Auftragsnummer 1 dürfte nicht ausgegeben werden, da das maximale Datum von Auftragsnummer 1 grösser als der 12.10.2007 ist
-> Deshalb muss ich ja das Maximale Datum abfragen, aber wie ?

Weiss hier jemand wie das

[/quote]select first 1 XY from Z order by Datum desc; [quote]

in Oracle geht ?

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#14

Re: SQL - Abfrage mit Max

  Alt 26. Sep 2007, 14:13
Andere Idee (ungetestet):
SQL-Code:
SELECT A.AuftragNr, A.Text, MAX(B.Datum)
FROM Tabelle1 A
JOIN Tabelle2 B ON B.AuftragNr = A.AuftragNr
WHERE NOT EXISTS(
    SELECT * FROM Tabelle2 C
    WHERE TRUNC(C.Datum) >= sysdate
    AND C.AutragNr = B.AuftragNr)
GROUP BY A.Auftragnr,A.Text
//Edit: Im Subselect muss es Tabelle2 heißen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
ken_jones

Registriert seit: 16. Mai 2005
Ort: Luzern
154 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

Re: SQL - Abfrage mit Max

  Alt 26. Sep 2007, 14:29
Ah so, sorry, hab deinen Text zu schnell gelesen.
Dann halt so rum:

SQL-Code:
select t1.auftragnr, t1.text, max(t2.datum)
from tabelle1 t1,
     tabelle2 t2
where t1.auftragnr = t2.auftragnr
group by t1.auftragnr, t1.text
having max(t2.datum) < to_date('12.Oct.2007') --sysdate
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#16

Re: SQL - Abfrage mit Max

  Alt 26. Sep 2007, 16:17
Beide Lösungen klappen einwandfrei.

Super danke

Gruss

Holger
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17

Re: SQL - Abfrage mit Max

  Alt 26. Sep 2007, 18:07
Wie ist es dir gelungen mit "FIRST 1" zwei Datensätze zurück zu bekommen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#18

Re: SQL - Abfrage mit Max

  Alt 27. Sep 2007, 09:50
Habe die Lösungen von DeddyH und ken_jones ausprobiert. Die haben geklappt.

Gruss

Holger
  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 16:41 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