Hallo zusammen,
ich bin SQL noch nicht sehr vertraut und habe ein Problem mit einer Abfrage (Zu dem Problem habe ich mich schon mehrere Foren durchsucht).
Ich habe 2 Tabellen ma und maq.
In ma (Master) steht u.a. die ID, der Name, Vname,..., Date1, Date2 (zwei Datumswerte).
In maq (Detail) steht u.a. die ID, MAID (die ID zur Mastertabelle),..., QVerf (ein Qualifikationsverfahren) und QBis (Ablaufdatum für QVerf).
Ich möchte einen Abfrage erstellen, die mir alle Name auflistet, bei denen Date1, Date2 oder QBis in einem vorgegebenen Intervall (z.B. in nächsten Monat oder Jahr) liegen.
Beispiel:
MA Date1 Date2 QVerf QBis
name1 10.03.2014
name2 15.03.2014
name3 05.03.2014 V1 28.03.2014
name4 V3 16.03.2014
Ich habe das schon mit Unterabfrage versucht zu lösen, bekomme aber immer auch leere Datensätze mitgeliefert.
Hier meine Abfrage:
SELECT ma.name, ma.vname, ma.Date1, ma.Date2, maq.MAID, maq.QVerf, maq.QStBis
FROM maq,ma
WHERE (41640 <= maq.QBis AND maq.QBis <= 42004)
OR((maq.MAID = ANY(
SELECT ma.ID
FROM ma
WHERE ((41640 <= Date1 AND Date2 <= 42004)
OR (41640 <= Date2 AND Date2 <= 42004)))))
ORDER BY Name,VName,Date1,Date2;
Kann mir jemand helfen?
Danke
ich bin SQL noch nicht sehr vertraut und habe ein Problem mit einer Abfrage (Zu dem Problem habe ich mich schon mehrere Foren durchsucht).
Ich habe 2 Tabellen ma und maq.
In ma (Master) steht u.a. die ID, der Name, Vname,..., Date1, Date2 (zwei Datumswerte).
In maq (Detail) steht u.a. die ID, MAID (die ID zur Mastertabelle),..., QVerf (ein Qualifikationsverfahren) und QBis (Ablaufdatum für QVerf).
Ich möchte einen Abfrage erstellen, die mir alle Name auflistet, bei denen Date1, Date2 oder QBis in einem vorgegebenen Intervall (z.B. in nächsten Monat oder Jahr) liegen.
Beispiel:
MA Date1 Date2 QVerf QBis
name1 10.03.2014
name2 15.03.2014
name3 05.03.2014 V1 28.03.2014
name4 V3 16.03.2014
Ich habe das schon mit Unterabfrage versucht zu lösen, bekomme aber immer auch leere Datensätze mitgeliefert.
Hier meine Abfrage:
SELECT ma.name, ma.vname, ma.Date1, ma.Date2, maq.MAID, maq.QVerf, maq.QStBis
FROM maq,ma
WHERE (41640 <= maq.QBis AND maq.QBis <= 42004)
OR((maq.MAID = ANY(
SELECT ma.ID
FROM ma
WHERE ((41640 <= Date1 AND Date2 <= 42004)
OR (41640 <= Date2 AND Date2 <= 42004)))))
ORDER BY Name,VName,Date1,Date2;
Kann mir jemand helfen?
Danke
Comment