#1 Wed 02 June 2010 15:58
- Yann Masson
- Juste Inscrit !
- Date d'inscription: 21 Jun 2009
- Messages: 5
SQL et division par zéro
Bonjour,
Je cherche à faire une sélection de points pour lesquels le rapport entre le volume consommé et le volume autorisé est inferieur a 1,5. La requête suivante me renvoi le message : "Erreur : division par zéro", certains volumes autorisés étant =0.
Code:
SELECT * FROM MaTable WHERE Vaut > 0 AND Vcons/Vaut < 1.5
Bien sûr, je pourrais faire une première sélection :
Code:
SELECT * FROM MaTable WHERE Vaut > 0 INTO SelIntermediaire
puis :
Code:
SELECT * FROM SelIntermediaire WHERE Vcons/Vaut < 1.5
Ce qui me donne bien le résultat voulu.
Le problème est que Mapinfo semble ne pas conserver, lors de l'enregistrement du .wor, les sélections effectuées sur d'autres sélections. Enregistrer la sélection intermédiaire en dur n'est pas une solution satisfaisante car une mise à jour des données d'origine ne serait alors plus répercutée sur la sélection.
J'ai du mal à croire qu'il ne soit pas possible de faire cette sélection en une seule requête.
Merci d'avance
Hors ligne
#2 Wed 02 June 2010 16:24
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: SQL et division par zéro
Salut,
Peux tu expliquer
les sélections effectuées sur d'autres sélections.
Utilisation de "noselect" permets d'incrémenter ta sélection.
A+
Joël
Hors ligne
#3 Wed 02 June 2010 16:44
- Patrick PALMIER
- Participant actif
- Lieu: Lille
- Date d'inscription: 18 Jan 2007
- Messages: 97
Re: SQL et division par zéro
Bonjour tu peux essayer d'utiliser une expression du genre
SELECT * FROM MaTable WHERE Vcons/(Vaut+int(vaut=0)) < 1.5
par exemple
Ca marchera sauf si Vcons>0 et Vaut=0
Hors ligne
#4 Thu 03 June 2010 09:15
- Yann Masson
- Juste Inscrit !
- Date d'inscription: 21 Jun 2009
- Messages: 5
Re: SQL et division par zéro
Merci pour votre aide. La solution proposée par Patrick Palmier fonctionne.
Salut,
Peux tu expliquer
les sélections effectuées sur d'autres sélections.
Utilisation de "noselect" permets d'incrémenter ta sélection.
A+
Joël
Si je fait une sélection avec une requête SQL, cette requête est enregistrée lorsque je sauvegarde le .wor, et sera refaite à la réouverture du .wor.
Mais si je fait une nouvelle sélection dans cette sélection, aucune trace de celle-ci ne semble rester dans le .wor, et elle ne réapparait plus à sa réouverture.
Et si cette dernière sélection était affichée avec une légende correspondante, la légende peut ne plus s'afficher correctement.
Hors ligne