Problem mit select Anweisung

tomkn

Mitglied
Hallo,

Ich will mit einer Selectanweisung alle Werte einer Table bekommen die NICHT innerhalb eines Zeitraums liegen.
Mein Ansatz sieht folgendermassen aus:

Select P.PNR, P.Name from Patient P, Besuch B
where P.PNR=B.PNR
and B.Datum <= '02.01.05' and B.Datum >= '31.03.05';

doch damit bekomme ich leider 0 ergebnisse - wenn ich das AND zwischen den Datumsvergleiche durch ein OR ersetze spuckt er mir plötzlich alles aus.

Ich arbeite mit mysql 5.0 unter winXP
Wo liegt mein Fehler?
Help plz :)
 
Da muss definitiv ein OR rein – weshalb dann allerdings alle Einträge ausgegeben werden, ist mir schleierhaft. Sind denn überhaupt Datensätze in dem nicht gewünschten Zeitraum vorhanden?
 
Das Feld ist als Date formatiert und ich habe die Zeiträume extra so gewählt, das die mittleren EInträge wegfallen und die äußeren ausgegeben werden. leider ist das bisher mehr Schein als Sein
 
Wenn Du mit einem DATE vergleichen willst, musst Du das Datum im Format yyyy-mm-dd angeben.

Gruß hpvw
 
argh... stimmt! danke! habe die inserts mit den selects verglichen. der hat alles auf den Kopf gestellt!

das führt mich aber auch schon zum nächsten Problem:
select P.PNR, P.Name,
count(B.PNR) as anzB,
sum(B.Rechnungsbetrag) as allKost,
avg(B.Rechnungsbetrag) as avgRech
from Besuch B, Patient P
where P.PNR=B.PNR
group by B.PNR;

ich möchte hier nur die Patienten ausgeben, die min. 2 Besuche hatten, also
anzB >= 2

wenn ich nun aber diese Ergänzung ins where addiere erkennt er die Variable nimmer :(

grml. kennt einer ein ausführliches Tutorial zu all den Themen?

danke!
 
Zurück