tomy46
Messages postés11Date d'inscriptiondimanche 19 mars 2006StatutMembreDernière intervention16 février 2014
-
11 févr. 2014 à 02:38
jordane45
Messages postés38157Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 mai 2024
-
11 févr. 2014 à 12:43
Bonjour,
J'ai une liste de client avec leur date de naissance...
Je souhaite effectuer une requête qui calcule leur âge et me fait uniquement ressortir un tranche précise (ex : N# de client entre 50-60 ans) ...
Seul problème la présence d'un alias semble poser problème ...
Voici ma requête :
SELECT YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS('client_anniv') DAY)) AS AGE FROM client WHERE AGE BETWEEN '50' AND '60';
Cette requête bug sauf si je place WHERE AGE sous la forme "WHERE 'AGE'" mais après ça, plus rien ...
Par contre si je supprime AGE et que je recopie la formule au complet comme ceci :
SELECT YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS('client_annif') DAY)) FROM client WHERE YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS('client_annif') DAY)) BETWEEN '50' AND '60'
Là plus le moindre problème, mais c'est du coup beaucoup moins facile à manipuler ...
Pouvez-vous m'aider ?
Merci !
A voir également:
The projects in the reactor contain a cyclic reference: edge between
il me semble (sans certitude) que le "WHERE" est fait avant l'affectation des Alias dans le "SELECT" .. et donc que l'ALIAS n'existe pas encore...
Alors que le GROUP BY ,lui , est fait à la fin.
PS: pense à mettre la discussion en résolue si la réponse te convient.
tomy46
Messages postés11Date d'inscriptiondimanche 19 mars 2006StatutMembreDernière intervention16 février 2014 11 févr. 2014 à 12:41
Je viens de trouver une réponse qui explique cette différence :
"Les alias des tables sont utilisables dans les WHERE, HAVING et autres.
Les alias des champs ne sont pas utilisables dans les mêmes WHERE, HAVING et autres. Comme le dit etarip, ils ne servent qu'a renommer un champ dans le "tableau" de résultats (mais utilisables par la suite dans un Recordset par exemple)"
[xmarabout - developpez.net]
jordane45
Messages postés38157Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 mai 2024344 11 févr. 2014 à 12:43
ça rejoint ce que je disais : Utilisé pour " l'affichage ".