FAQ 3.16 mit spezieller einschraenkung der Datumsrange in der A-Tabelle

14/04/2009 - 15:55 von Volker Neurath | Report spam
Hallo zusammen,

ich möchte auf zwei Tabellen die Abfrage aus FAQ 3.16 loslassen - dabei
sollen jedoch die zu berücksichtigenden Datensàtze aus der Tabelle A auf
den in Tabelle B gegebenen Datumsrange eingegrenzt sein, also etwa so:

SELECT A.*
FROM A LEFT JOIN B ON A.ID=B.ID
WHERE B.ID IS NULL
AND A.DATUM BETWEEN MIN(B.Datum) AND MAX(B.Datum);

Die Fragen dazu sind:
1. wie ermittle ich die Datumrange _korrekt_ - das oben ist
phantasiecode?
2. ich muss die ermittelten Datumsgrenzen irnkwie per code dem
SQL-String
zufügen, andererseits möchte ich den SQL-String auch nicht komplett
per code basteln, sondern lieber eine gespeicherte Abfrage nutzen.
kann ich dazu eine Parameterabfrage nutzen, der die Parameter, hier
die Datumsgrenzen, per code zugefügt werden? Wenn ja, wie geht das ?
;)

Ich bin allerdings auch für bessere Ideen offen.

Volker

Wenn es vom Himmel Zitronen regnet -- lerne, Limonade zu machen.
 

Lesen sie die antworten

#1 Peter Doering
14/04/2009 - 18:36 | Warnen spam
Hallo,

Volker Neurath wrote:

ich möchte auf zwei Tabellen die Abfrage aus FAQ 3.16 loslassen - dabei
sollen jedoch die zu berücksichtigenden Datensàtze aus der Tabelle A auf
den in Tabelle B gegebenen Datumsrange eingegrenzt sein, also etwa so:

SELECT A.*
FROM A LEFT JOIN B ON A.ID=B.ID
WHERE B.ID IS NULL
AND A.DATUM BETWEEN MIN(B.Datum) AND MAX(B.Datum);

Die Fragen dazu sind:
1. wie ermittle ich die Datumrange _korrekt_ - das oben ist
phantasiecode?



Dein Beispiel, ob Phantasie oder echt, macht keinen Sinn.

Wenn B.ID Null ist, ist der Satz in B nicht vorhanden, d.h. es gibt auch
kein Min/Max(B.Datum).

Wenn B.Datum zu den Kriterien zaehlt, nach denen der Satz als vorhanden
betrachtet wird, muesstest du das Datum in den Join aufnehmen. Das bringt
aber nichts, wenn die ID im JOIN enthalten ist, denn die ID ist bereits
eindeutig, egal wie das Datum aussieht.

Was moechtest du erreichen?

Vielleicht hast du mit einem echten Beispiel weniger Arbeit.

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
3. SEK Sa/So 16./17.5.2009, Nürnberg http://www.donkarl.com/SEK/

Ähnliche fragen