Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi LEFT JOIN mit Max-Wert aus der anderen Tabelle (https://www.delphipraxis.net/96816-left-join-mit-max-wert-aus-der-anderen-tabelle.html)

HolgerCW 31. Jul 2007 09:13

Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE

LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Hallo zusammen,

wie kann ich mit einem LEFT JOIN eine Tabelle verknüpfen, von der ich nur den Max-Wert haben will ?

So habe ich angefangen:

Delphi-Quellcode:
SELECT SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER FROM SYSDBP.DBP_LEISTUNGSWERTE
LEFT JOIN SYSDBP.DBP_AUFTRAEGE
ON SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER = SYSDBP.DBP_AUFTRAEGE.ANLAGENNUMMER
AND MAX(SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT)
Wie muss ich das MAX umbauen ?

Gruss

Holger

DeddyH 31. Jul 2007 09:26

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Hallo,

das habe ich nicht ganz verstanden, was willst Du erreichen?

mkinzler 31. Jul 2007 09:35

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Es fehlt die eigentliche Bedingung

HolgerCW 31. Jul 2007 09:39

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
In der ersten Tabelle sind die Stammdaten,
in der zweiten die Aufträge,
jetzt möchte ich die beiden Tabellen so verbinden, das in der dann entstehenden Gesamttabelle nur das Datum des letzten Auftrages angezeigt wird.

Das ginge bestimmt mit einem Group by über die Gesamttabelle, aber da mache ich schon einen Count ...

Gruss

Holger

DeddyH 31. Jul 2007 09:45

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Du willst also die neuesten Aufträge anzeigen? Oder sollen alle Aufträge mit dem neuesten Auftragsdatum gelistet werden (das macht ja IMHO keinen Sinn)?

mkinzler 31. Jul 2007 09:45

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Da würde ich einen Subquery nehmen

HolgerCW 31. Jul 2007 09:56

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Ich möchte zu dem jeweiligen Stammdatensatz den letzten Auftrag ( neustes Datum ) anzeigen.

Dachte um es einfach zu halten, joine ich nur den jeweils letzten Auftrag. Die anderen Aufträge sind unrelevant.

Brauche das aktuelle Datum des letzten Auftrages für den jeweiligen Stammdatensatz.

Gruss

Holger

DeddyH 31. Jul 2007 09:59

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Ungetestet:
SQL-Code:
SELECT SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER,SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT
FROM SYSDBP.DBP_LEISTUNGSWERTE
JOIN SYSDBP.DBP_AUFTRAEGE
ON SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER = SYSDBP.DBP_AUFTRAEGE.ANLAGENNUMMER
WHERE SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT =
(SELECT MAX(SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT)
 FROM SYSDBP.DBP_AUFTRAEGE)

HolgerCW 31. Jul 2007 10:05

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Ich versuche mal meine Abfrage hier abzubilden. Meine damit den relevanten Teil:

Delphi-Quellcode:
SELECT COUNT(SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER) AS DB_ANZAHL, SYSWVKISU.ANLAGE.ANLAGE

FROM (SYSWVKISU.ANLAGE

LEFT JOIN SYSDBP.DBP_LEISTUNGSWERTE
ON SYSWVKISU.ANLAGE.ANLAGE = SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER)

LEFT JOIN SYSDBP.DBP_AUFTRAEGE
ON SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER = SYSDBP.DBP_AUFTRAEGE.ANLAGENNUMMER

GROUP BY SYSWVKISU.ANLAGE.ANLAGE
Wie bekomme ich hier den nur den MAX Wert von SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT

Gruss

Holger

DeddyH 31. Jul 2007 10:10

Re: LEFT JOIN mit Max-Wert aus der anderen Tabelle
 
Setze mal meine WHERE-Klausel unter Dein GROUP BY.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr.
Seite 1 von 2  1 2      

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