Maximum eines Feldes aus 2 Tabellen bestimmen

Advantage Database Server

Moderator: Moderatoren

Antworten
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Maximum eines Feldes aus 2 Tabellen bestimmen

Beitrag von UliTs »

Hallo allerseits,

ich habe zwei identische Tabellen (eine davon ist eine Archivtabelle).
Ich möchte das Maximum des Feldes BestAufNr aus den beiden Tabellen bestimmen.
Ich habe folgende Lösung programmiert, die glücklicherweise beim ADS :D rasend schnell ist:

Code: Alles auswählen

SELECT IIF( BestAufNr1>BestAufNr2,BestAufNr1,BestAufNr2 ) BestAufNr
FROM
(
SELECT 
     (SELECT TOP 1 BestAufNr FROM BKAufPos       ORDER BY BestAufNr DESC) BestAufNr1,
     (SELECT TOP 1 BestAufNr FROM BKAufPosArchiv ORDER BY BestAufNr DESC) BestAufNr2
FROM SYSTEM.IOTA
) BAuPOderBAuPA
Aber vielleicht hat noch jemand eine Idee, wie man dies (beim ADS) noch eleganter lösen kann :-) .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Maximum eines Feldes aus 2 Tabellen bestimmen

Beitrag von nightcrawler »

ich versuchs mal:

Code: Alles auswählen

select max(BestAufNr) as BestAufNr from
(
select max(BestAufNr) as BestAufNr from BKAufPos
union
select max(BestAufNr) as BestAufNr from BKAufPosArchiv 
) a
Index auf das Feld BestAufNr bei beiden Tabellen.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Maximum eines Feldes aus 2 Tabellen bestimmen

Beitrag von UliTs »

Ja, so hatte ich es zuvor auch :) .
Ich finde das auch viel eleganter, insbesondere, weil man so keine Probleme mit NULL-Werten bekommt (oder?).

Aber es ist auch viel langsamer: 281ms zu <1ms ohne max() und union .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Maximum eines Feldes aus 2 Tabellen bestimmen

Beitrag von Wolfgang Ciriack »

Ich denke, im ms-Bereich kann man damit leben :D
Viele Grüße
Wolfgang
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Maximum eines Feldes aus 2 Tabellen bestimmen

Beitrag von UliTs »

Wolfgang Ciriack hat geschrieben:Ich denke, im ms-Bereich kann man damit leben :D
Bei kleiner als 1ms ja, aber da die Aktion bis zu 300x aufgerufen wird, darf es nicht ein paar Hundertstel-Sekunden dauern :D :D
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten