MySQL Vergleichswerte in '' oder nicht

Dukeatcoding

Mitglied
Ich habe eine erstuanliche Erfahrung gemacht

Setzt man die Jahreszahl 2008 und die jeweiligen Monate 1-12 in '' so kommt was anderes raus als ohne und was dabei das erstaunliche ist mit '' ist es nicht das Ergebnis das es müsste. Hat jemand eine Erklärung dafür ?


PHP:
Select DISTINCT 
mitarbeiter.*,
mitarbeiter_zeiten.*,
mitarbeiter_zeiten.gehalt as gehalt,
kostenstellen.name as kostenstelle,
mitarbeiter_kostenstellen.prozent as prozent,

CASE WHEN ((vonmonat <= 1 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 1)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 1)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS januar, 

CASE WHEN ((vonmonat <= 2 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 2)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 2)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS februar, 

CASE WHEN ((vonmonat <= 3 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 3)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 3)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS mrz,

CASE WHEN ((vonmonat <= 4 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 4)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 4)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS april, 

CASE WHEN ((vonmonat <= 5 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 5)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 5)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS mai,

CASE WHEN ((vonmonat <= 6 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 6)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 6)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS juni, 

CASE WHEN ((vonmonat <= 7 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 7)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 7)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS juli,

CASE WHEN ((vonmonat <= 8 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 8)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 8)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS august, 

CASE WHEN ((vonmonat <= 9 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 9)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 9)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS september,

CASE WHEN ((vonmonat <= 10 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 10)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 10)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS oktober,

CASE WHEN ((vonmonat <= 11 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 11)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 11)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS november,

CASE WHEN ((vonmonat <= 12 and vonjahr=2008 and ((bisjahr = 2008 and bismonat>= 12)or(bisjahr>2008))) 
or (vonjahr < 2008 and ((bisjahr=2008 and bismonat >= 12)or (bisjahr>2008)))) 
THEN gehalt * prozent / 100 ELSE '0' END AS dezember 

from mitarbeiter,mitarbeiter_zeiten,mitarbeiter_kostenstellen,kostenstellen
where 
mitarbeiter_zeiten.mid=mitarbeiter.id 
and (vonjahr<='2008' and bisjahr>='2008') 
and mitarbeiter_zeiten.id = mitarbeiter_kostenstellen.bid 
and mitarbeiter_kostenstellen.kid ='7' 
and kostenstellen.id = '7' 

order by name ASC, vorname ASC
 

Neue Beiträge

Zurück