[SQL] Access 97 - problème Having

Résolu/Fermé
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 - 8 avril 2008 à 15:46
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 - 8 avril 2008 à 17:00
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.
A voir également:

1 réponse

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 383
8 avril 2008 à 15:58
Bonjour,

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

A plus
1
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 73
8 avril 2008 à 16:03
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!
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 383 > Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011
8 avril 2008 à 17:00
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
0