Problème avec champs crée dans requête SELECT

Résolu
cs_sebix Messages postés 2 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 14 juin 2007 - 14 juin 2007 à 16:41
cs_sebix Messages postés 2 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 14 juin 2007 - 14 juin 2007 à 16:58
Bonjour à tous,

J'ai une requete SELECT ou je crée un champs en focntion de la valeur de deux autres champs :
SELECT t.*, NB_J  =
case
when EXPRESSION_DUREE = 'J' THEN DUREE
when EXPRESSION_DUREE = 'M' THEN DUREE * 30
when EXPRESSION_DUREE = 'A' THEN DUREE * 360
end
FROM TAUX t

J'aimerais savoir comment utiliser la fonction MAX sur ce champs crée (NB_J) qui ne contient que des entiers ainsi que si il est possible de faire un filte sur ce champ (NB_J > 180).
En gros pour arriver à quelque chose comme :
SELECT max(NB_J  =
case
when EXPRESSION_DUREE = 'J' THEN DUREE
when EXPRESSION_DUREE = 'M' THEN DUREE * 30
when EXPRESSION_DUREE = 'A' THEN DUREE * 360
end)
FROM TAUX t
WHERE NB_J > 70

Bien évidemment cela ne marche pas !

Merci par avance pour votre aide.

2 réponses

dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
14 juin 2007 à 16:49
Bonjour,
Essaie:
select max(nb_j)
 from
(
SELECT t.*, NB_J  =
case
when EXPRESSION_DUREE = 'J' THEN DUREE
when EXPRESSION_DUREE = 'M' THEN DUREE * 30
when EXPRESSION_DUREE = 'A' THEN DUREE * 360
end
FROM TAUX t
) tt

Ca , c'est le maximum de tout ....
Dom
3
cs_sebix Messages postés 2 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 14 juin 2007
14 juin 2007 à 16:58
Merci beaucoup ca marche nickel.
0
Rejoignez-nous