Dukeatcoding
Mitglied
MySQL: Case when ... ist ein Or möglich ?
Bei einer Case When Bedingung innerhalb einer Anwendung kann man ja mit mehreren When's Alternativen mache, da ich aber möchte das bei 3 verschiedenen zuständen immer das gleiche Then genommen wird hab ich die Ausdrücke versucht mit einem or zu verknüpfen.
Bei nur einer Case When in der SQL Anfrage klappt es... habe ich dann eine 2 sowie im beispiel siehe unten geht es nicht.
Ich bin mir gerade etwas unsicher ob man generell überhaupt nen OR benutzten darf:
Bei einer Case When Bedingung innerhalb einer Anwendung kann man ja mit mehreren When's Alternativen mache, da ich aber möchte das bei 3 verschiedenen zuständen immer das gleiche Then genommen wird hab ich die Ausdrücke versucht mit einem or zu verknüpfen.
Bei nur einer Case When in der SQL Anfrage klappt es... habe ich dann eine 2 sowie im beispiel siehe unten geht es nicht.
Ich bin mir gerade etwas unsicher ob man generell überhaupt nen OR benutzten darf:
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 (vonjahr < '2008' and bisjahr='2008' and bismonat >= '1')
or (vonmonat <= '1' and vonjahr = '2008' and bisjahr>'2008') and THEN gehalt * prozent / 100 ELSE '0' END AS januar,
CASE WHEN (vonmonat <= '2' and vonjahr='2008' and bisjahr = '2008' and bismonat>= '2')
or (vonjahr < '2008' and bisjahr='2008' and bismonat >= '2')
or (vonmonat <= '2' and vonjahr = '2008' and bisjahr>'2008')THEN gehalt * prozent / 100 ELSE '0' END AS februar
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
Zuletzt bearbeitet: