Probleme CASE THEN
Posté : 31 janv. 2008, 19:04
Voici ma table:
Voici ma requête et son résultat:
Mon problème est le suivant: Je veux obtenir les fêtes annuelles, les congés fériés aussi bien que les fêtes ponctuelles.
Dans cette requête, tout fonctionne bien:
Est-il donc impossible de recourir à une colonne créée pour faire un WHERE 
Code : Tout sélectionner
CREATE TABLE `paroisses_feries` (
`id_ferie` int(11) NOT NULL auto_increment,
`id_paroisse` int(11) NOT NULL,
`Dte_Jour` int(11) NOT NULL,
`Dte_Mois` int(11) NOT NULL,
`Dte_Annee` int(11) NOT NULL,
`ferie_type` enum('Une fois','Annuel','Special') NOT NULL,
`Details` varchar(50) NOT NULL,
PRIMARY KEY (`id_ferie`)
)Code : Tout sélectionner
SELECT Dte_Jour,
CASE WHEN ferie_type = 'Annuel'
THEN 2008
ELSE Dte_Annee
END AS Annee_calculee
FROM paroisses_feries
WHERE Dte_Mois =1
AND Annee_calculee =2008
LIMIT 0 , 30
MySQL a répondu:Documentation
#1054 - Unknown column 'Annee_calculee' in 'where clause' Mon problème est le suivant: Je veux obtenir les fêtes annuelles, les congés fériés aussi bien que les fêtes ponctuelles.
Dans cette requête, tout fonctionne bien:
Code : Tout sélectionner
SELECT Dte_Jour,
CASE WHEN ferie_type = 'Annuel'
THEN 2008
ELSE Dte_Annee
END AS Annee_calculee
FROM paroisses_feries
WHERE Dte_Mois =1
ORDER BY Annee_calculee ASC
LIMIT 0 , 30