Probleme de comprehension sql, calcul et tri d'age depuis des dates
Bonjour je souhaite faire quelque chose de tres simple en sql mais je ne comprend pas pourquoi il me bloque ma requete.
en gros, j'ai une base qui contient un champ date de naissance de type "date",
J'effectue mes jointure pour en degager les utilisateurs concerné, mais apres je veux simplement compter le nombre d'utilisateurs entre 25 et 30ans
j'ai tenté cela :
Code:
1 2 3 4 5
| SELECT COUNT(*) as compte, (DATEDIFF(CURDATE(), user_date_naissance)) AS calcul FROM t_user JOIN t_jointure ON tri_user_id = jointure_user_id
JOIN x_diplome ON diplome_id = '42'
AND dsd_entite_id = 520
WHERE (DATEDIFF(CURDATE(), user_date_naissance)) > 9490 AND
(DATEDIFF(CURDATE(), user_date_naissance)) <= 10950 |
j'ai essayé de mettre
Code:
1 2
| WHERE calcul > 9490 AND
calcul <= 10950 |
ca me mettait
Code:
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
donc j'ai rajoutéet là j'ai le droit à un
Code:
Can't group on 'compte'
mais rien n'y fait.
à vrai dire j'ai toujours ce genre de problemes que je résoud par des bidouillages mais je crois que j'ai beaucoup de mal avec la syntax du sql.
Si quelqu'un de genereux pouvait juste m'indiquer mon erreur que je vois le truc en sql que je pige pas (pourquoi je peux jamais sauver mes variables et les re-utiliser apres, et surtout comment modeliser la difference entre le COUNT qui me sort 1seul resultat et des autres trucs dont chaque ligne est à traiter et en sortir un resultat)
bref je bloque dessus et ca m'agace car le sql est incomparablement plus rapide que le php et est fait pour traiter les calculs et les tables et bloquer dessus ce genre de requetes depuis 1semaine et demi commence à me faire perdre les nerfs et me rendre fou :(
merci encore de votre aide!
Paul