[SQL] Access 97 - problème Having [Résolu/Fermé]

Signaler
Messages postés
130
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
17 juin 2011
-
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
-
Bonjour,

j'ai un petit soucis avec la requête suivante (les crochets sont là pour qu'Access accepte les noms d'attributs et de tables avec des caractères spéciaux):

SELECT count(*) as [nb espèces menacées], obs.[N° Localisation]
from Observations as obs, [Données des taxons] as data
where obs.[N° Taxon]=data.[N° taxon] and data.[N° Catégorie UICN]<>null
group by obs.[N° Localisation]
having [nb espèces menacées]>1;

Le problème est que Access me dit qu'il ne connait pas [nb espèces menacées] alors que je le définis dans le SELECT.

Si j'enlève la ligne du HAVING, le reste de la requête fonctionne.

Je pense que je peux obtenir le résultat souhaité avec une requête imbriquée, mais j'aimerai comprendre pourquoi la requête écrite ci-dessus ne marche pas.

Merci d'avance.

1 réponse

Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 350
Bonjour,

En fait, il te suffit d'utiliser le code suivant
having count(*) > 1
.

A plus
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
130
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
17 juin 2011
66
C'est vrai que ça marche mais je trouvais pas ça très optimisé de faire deux fois count(*), je pensais qu'il gardait la valeur dans [nb espèces menacées].

Merci!
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 350 >
Messages postés
130
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
17 juin 2011

Bonjour,

En fait, l'ordre SQL ne fait pas deux fois le count(*), il va utiliser le résultat du premier comme valeur pour filtrer avec l'ordre HAVING.

A plus