Having et Where dans SQL ???
Résolu
tessel75
-
tessel75 -
tessel75 -
Bonjour,
A la suite de changement de noms dans mes tables et l'obligation qui en est résultée de réécrire certaines requêtes SQL de mon code, je me rends compte que le convertisseur Access du format "graphique" ou "création" en SQL a remplacé des sélections de valeurs de champs de "Having" en "where".
Ne me souvenant plus ce que j'avais voulu faire à l'origine, il y a plusieurs années, je suis un peu déboussolé. Et comme je ne manipule pas SQL comme un professionnel ....
Pour être plus clair, j'avais:
"Select ... tatata ... Group by .... having (((ComptabiliteGestionEuros.Date) > Date - 750)) ORDER by ... tatata"
et maintenant j'ai:
"Select ... tatata ... where (((ComptabiliteGestionEuros.Date) > Date - 750))
Group by .... ORDER by ... tatata"
Je remercie vivement tous ceux qui pourront m'enseigner la différence entre ces 2 écritures et ce qu'elles impliquent.
Bien cordialement, avec impatience.
A la suite de changement de noms dans mes tables et l'obligation qui en est résultée de réécrire certaines requêtes SQL de mon code, je me rends compte que le convertisseur Access du format "graphique" ou "création" en SQL a remplacé des sélections de valeurs de champs de "Having" en "where".
Ne me souvenant plus ce que j'avais voulu faire à l'origine, il y a plusieurs années, je suis un peu déboussolé. Et comme je ne manipule pas SQL comme un professionnel ....
Pour être plus clair, j'avais:
"Select ... tatata ... Group by .... having (((ComptabiliteGestionEuros.Date) > Date - 750)) ORDER by ... tatata"
et maintenant j'ai:
"Select ... tatata ... where (((ComptabiliteGestionEuros.Date) > Date - 750))
Group by .... ORDER by ... tatata"
Je remercie vivement tous ceux qui pourront m'enseigner la différence entre ces 2 écritures et ce qu'elles impliquent.
Bien cordialement, avec impatience.
A voir également:
- Having et Where dans SQL ???
- Where is it - Télécharger - Gestion de fichiers
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
2 réponses
Salut,
ta requête initiale possédait un HAVING qui fonctionnait comme un WHERE, c'est pour cela que la conversion a supprimé le HAVING.
Le HAVING sert à effectuer une restriction, non pas sur les données brutes (comme le WHERE) mais sur des données agrégées.
Ex :
Cette requête va sortir la moyenne d'âge des classes seulement si cette moyenne est supérieure à 20. Ce calcul ne peut pas être fait avec un WHERE classique puisque AVG(age) n'est pas encore calculé quand on fait le WHERE.
A+ blux
ta requête initiale possédait un HAVING qui fonctionnait comme un WHERE, c'est pour cela que la conversion a supprimé le HAVING.
Le HAVING sert à effectuer une restriction, non pas sur les données brutes (comme le WHERE) mais sur des données agrégées.
Ex :
SELECT AVG(age), classe FROM table GROUP BY Classe HAVING AVG(age) >20;
Cette requête va sortir la moyenne d'âge des classes seulement si cette moyenne est supérieure à 20. Ce calcul ne peut pas être fait avec un WHERE classique puisque AVG(age) n'est pas encore calculé quand on fait le WHERE.
A+ blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"