Einzelnen Beitrag anzeigen

HolgerCW

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

Re: Zwei Tabellen -> Dreifach Joinen ?

  Alt 1. Aug 2007, 08:19
Das hört sich interresant an. Wie kann ich das in Delphi realisieren ?

Möchte Quasi diese Abfrage: (Ist ein Teil aus der Gesamt-Query)

Delphi-Quellcode:
(CASE WHEN
(SELECT AUFTRAGERLEDIGT FROM SYSDBP.DBP_AUFTRAEGE WHERE SYSDBP.DBP_AUFTRAEGE.ANLAGENNUMMER = SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER AND SYSDBP.DBP_AUFTRAEGE.SIGMA_TAETIGKEIT_ID = '133AND
(SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT = (SELECT MAX(SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT) FROM SYSDBP.DBP_AUFTRAEGE WHERE SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER = SYSDBP.DBP_AUFTRAEGE.ANLAGENNUMMER
SYSDBP.DBP_LEISTUNGSWERTE.ANZAHL = SYSDBP.DBP_AUFTRAEGE.DB_REGISTER AND SYSDBP.DBP_AUFTRAEGE.SIGMA_AUFTYP_ID = '50AND SYSDBP.DBP_AUFTRAEGE.STATUS = 'abgeschlossen')))
IS NOT NULL THEN
ADD_MONTHS((SELECT AUFTRAGERLEDIGT FROM SYSDBP.DBP_AUFTRAEGE WHERE SYSDBP.DBP_AUFTRAEGE.ANLAGENNUMMER = SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER AND SYSDBP.DBP_AUFTRAEGE.SIGMA_TAETIGKEIT_ID = '133AND
(SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT = (SELECT MAX(SYSDBP.DBP_AUFTRAEGE.AUFTRAGERLEDIGT) FROM SYSDBP.DBP_AUFTRAEGE WHERE SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER = SYSDBP.DBP_AUFTRAEGE.ANLAGENNUMMER
AND SYSDBP.DBP_LEISTUNGSWERTE.ANZAHL = SYSDBP.DBP_AUFTRAEGE.DB_REGISTER AND SYSDBP.DBP_AUFTRAEGE.SIGMA_AUFTYP_ID = '50AND SYSDBP.DBP_AUFTRAEGE.STATUS = 'abgeschlossen'))), FESTIGKEIT_JAHRE * 12)
ELSE CASE
WHEN FESTIGKEIT_JAHRE <> 0 THEN ADD_MONTHS(TO_DATE('01.01.2006'), FESTIGKEIT_JAHRE * 12) WHEN FESTIGKEIT_JAHRE = 0 THEN NULL END
END) AS FESTIGKEITPRUEFUNG,
... dann wieder verwenden. In dem ich nur 'FESTIGKEITPRUEFUNG' in die nächste Abfrage einbauen muss.

Wie geht das mit der procedure oder function, da ich ja einen Wert an die nächste Abfrage übergeben will.

Wie rufe ich dann die Procedure oder Function 'FESTIGKEITPRUEFUNG' auf ?

Man sieht ja auch oben, das die 'SELECT AUFTRAGERLEDIGT ...' doppelt ist. Schon den Teil könnte man schön in eine PRocedure oder Function packen. Nur wie läuft das ?

Die Abfragen ergeben dann eine grosse TQuery.

Gruss

Holger
  Mit Zitat antworten Zitat