Abfrage mit mehreren Bedingungen

05/07/2009 - 18:07 von Peter Wenzel | Report spam
Hallo zusammen,

ich würde gerne wissen, warum die Abfrage

SELECT Sum(Preis) AS GPreis, Datum, KostenartID, FahrzeugID
FROM tblKosten
WHERE Year([Datum]) 09 AND FahrzeugID=3 AND KostenartID=2 OR KostenartID=3
GROUP BY Datum, KostenartID, FahrzeugID;

als Ergebnis alle FahrzeugID's aus allen Jahren mit der KostenID 3 ausgibt,
die Abfrage

SELECT Sum(Preis) AS GPreis, Datum, KostenartID, FahrzeugID
FROM tblKosten
WHERE Year([Datum]) 09 AND FahrzeugID=3 AND KostenartID>1 AND KostenartID<4
GROUP BY Datum, KostenartID, FahrzeugID;

das "richtige" Ergebnis, nàmlich die Datensàtze aus dem Jahr 2009 mit FahrzeugID 3 und den
KostenID's 2 und 3, ausgibt?

Könnte mir da jemand meine Windungen in die richtige Richtung biegen?


Gruß
Peter
 

Lesen sie die antworten

#1 Thomas Möller
05/07/2009 - 19:28 | Warnen spam
Hallo Peter,

Peter Wenzel schrieb:
ich würde gerne wissen, warum die Abfrage

SELECT Sum(Preis) AS GPreis, Datum, KostenartID, FahrzeugID
FROM tblKosten
WHERE Year([Datum]) 09 AND FahrzeugID=3 AND KostenartID=2 OR
KostenartID=3
GROUP BY Datum, KostenartID, FahrzeugID;

als Ergebnis alle FahrzeugID's aus allen Jahren mit der KostenID 3 ausgibt,
die Abfrage

SELECT Sum(Preis) AS GPreis, Datum, KostenartID, FahrzeugID
FROM tblKosten
WHERE Year([Datum]) 09 AND FahrzeugID=3 AND KostenartID>1 AND
KostenartID<4
GROUP BY Datum, KostenartID, FahrzeugID;

das "richtige" Ergebnis, nàmlich die Datensàtze aus dem Jahr 2009 mit
FahrzeugID 3 und den KostenID's 2 und 3, ausgibt?

Könnte mir da jemand meine Windungen in die richtige Richtung biegen?



setz mal in der WHERE-Klausel der ersten Abfrage ein Paar Klammern:

WHERE Year([Datum]) 09 AND FahrzeugID=3
AND (KostenartID=2 OR KostenartID=3)


HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen