Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Tue 21 January 2003 09:06

Christophe Barbier
Invité

Erreur dans une requete simple

Bonjour,

A ma grande stupefaction, MapInfo renvoie une erreur Erreur de type dans l'expression pour la requete suivante:

SELECT MaTable.id, Count(*) FROM MaTable WHERE Col2>1 GROUP BY MaTable.id

Le but etant donc de selectionner tous les identifiants de ma table qui existent plus d'une fois.
Quelqu'un connait-il une astuce, sachant que pour des raisons pratiques de mon developpement, j'aimerai obtenir ce resultat en une seule requete ?

Merci pour toute reponse,

Christophe Barbier, I²G
Chef de projet SIG
christophe.barbier@texte-a-enlever.i2g.fr
www.i2g.fr

 

#2 Tue 21 January 2003 11:57

Christophe Barbier
Invité

Re: Erreur dans une requete simple

Maya a écrit:

Bonjour,
Je viens d'essayer la meme requete sur l'une de mes tables, je n'ai pas
eu de pb. Avez-vous verifie le type de vos donnees (spec. pour col2)?
Essayer d'enlever le count, peut-etre que c'est lui qui declanche une erreur (bien qu'illogique!)
Maya


Maya,

Merci pour votre reponse mais je ne peux pas enlever le Count puisque
c'est lui que j'evalue a travers ...WHERE Col2>1... .
Col2 est le resultat de mon Count
Je precise que mon champ MaTable.id est de l'Integer.


Christophe Barbier, I²G

 

#3 Tue 21 January 2003 13:21

Christophe Barbier
Invité

Re: Erreur dans une requete simple

Et Col2: est-ce bien du numerique?
Pourquoi pas poser la question sur MaTable.id>1
A+
Maurice NADAL - UMR3S - Maison de la Teledetection
500, rue J-F Breton, 34093 MONTPELLIER cedex 5
maurice.nadal@texte-a-enlever.agriculture.gouv.fr
maurice.nadal@texte-a-enlever.teledetection.fr


Merci pour toutes vos reponses mais je me suis sans doute mal exprime:

Col2 contient le resultat du Count(*) utilise comme aggregation dans ma requete.
Ma requete commence par SELECT MaTable.id, Count(*)... et Col2 fait reference au resultat de Count(*)
Count(*) etant un compte, il ne peut theoriquement que etre numerique.

A tout hasard, j'ai essaye la syntaxe ...WHERE Col2> 1 ... mais ca ne marche pas non plus.

Si vous avez d'autres idees, je suis preneur.

Christophe Barbier, I²G

 

#4 Tue 21 January 2003 13:34

Eric Mauviere
Invité

Re: Erreur dans une requete simple

De: Eric Mauviere
le probleme est que WHERE porte forcement sur la table d'origine, Col2 designe donc le deuxieme champ de matable , qui dans votre cas n'est probablement pas numerique.

Pour que la requete puisse donner un resultat, il faudrait utiliser la clause HAVING a la place de WHERE, mais je ne crois pas que le SQL de Mapinfo l'implemente. En revanche, vous pouvez faire ORDER BY COL2 DESC.

Pour avoir ce que vous visez, il faut me semble-t-il une seconde requete prenant en compte le resultat de la premiere.

Cordialement,

Eric Mauviere
http://www.geoclip.net

 

#5 Tue 21 January 2003 15:51

Christophe Barbier
Invité

Re: Erreur dans une requete simple

Tout d'abord, je remercie encore tout le monde pour les reponse apportees.

Comme le dit Maya, je cherche a evaluer un champ que je cree dans la meme
requete et, apparemment, MapInfo n'a pas de moyen d'arriver a ce genre de
formulation en une seule requete.
(Et effectivement, MapInfo ne connait pas non plus la notion de HAVING)

J'etais persuade qu'il etait possible d'obtenir une liste d'identifiants
apparaissant plus d'une fois avec une seule requete mais je me suis resolu a
abandonner cette maniere de faire.

Christophe Barbier, I²G
Chef de projet SIG
christophe.barbier@texte-a-enlever.i2g.fr
www.i2g.fr

 

Pied de page des forums

Powered by FluxBB