j'ai un probleme au niveau d'une requete
j'aimerais selectionne tous les records qui sont superieur à un certain prix
mais que si les donnees sotn superieur à 0, car sinon cela me fait une
division par zero.
select aff_id from topmandats where
iif(IsEmpty(aff_prix)=false and
IsEmpty(aff_surf_habitable)=false,(aff_prix/aff_surf_habitable),0) > 10000
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thierry
Bonjour,
select * from topmandats where aff_surf_habitable>0 and aff_prix/aff_surf_habitable> 10000
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
-- Thierry
"olivier" a écrit dans le message de news: uEQp$
Bonjour à tous,
j'ai un probleme au niveau d'une requete j'aimerais selectionne tous les records qui sont superieur à un certain prix mais que si les donnees sotn superieur à 0, car sinon cela me fait une division par zero.
select aff_id from topmandats where iif(IsEmpty(aff_prix)úlse and IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) > 10000
Et cela ne marche pas
Olivier
Bonjour,
select * from topmandats
where aff_surf_habitable>0
and aff_prix/aff_surf_habitable> 10000
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
--
Thierry
"olivier" <nospam@free.fr> a écrit dans le message de news:
uEQp$r0wFHA.736@tk2msftngp13.phx.gbl...
Bonjour à tous,
j'ai un probleme au niveau d'une requete
j'aimerais selectionne tous les records qui sont superieur à un certain
prix
mais que si les donnees sotn superieur à 0, car sinon cela me fait une
division par zero.
select aff_id from topmandats where
iif(IsEmpty(aff_prix)úlse and
IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) > 10000
select * from topmandats where aff_surf_habitable>0 and aff_prix/aff_surf_habitable> 10000
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
-- Thierry
"olivier" a écrit dans le message de news: uEQp$
Bonjour à tous,
j'ai un probleme au niveau d'une requete j'aimerais selectionne tous les records qui sont superieur à un certain prix mais que si les donnees sotn superieur à 0, car sinon cela me fait une division par zero.
select aff_id from topmandats where iif(IsEmpty(aff_prix)úlse and IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) > 10000
Et cela ne marche pas
Olivier
Thierry
> La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats WHERE CASE WHEN aff_surf_habitable=0 THEN 0 ELSE aff_prix/aff_surf_habitable END > 10000
>
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats
WHERE
CASE
WHEN aff_surf_habitable=0 THEN 0
ELSE aff_prix/aff_surf_habitable
END > 10000
Pardonne moi thierry, mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record correspondant.
Ai je bien compris ?
Olviier
"Thierry" a écrit dans le message de news:
>
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats WHERE CASE WHEN aff_surf_habitable=0 THEN 0 ELSE aff_prix/aff_surf_habitable END > 10000
Thierry
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que si <COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il me semble que ça dépend des cas. Sql Serveur peut très bien décider d'évaluer <COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
-- Thierry
"olivier" a écrit dans le message de news:
Pardonne moi thierry, mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record correspondant.
Ai je bien compris ?
Olviier
"Thierry" a écrit dans le message de news:
>
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats WHERE CASE WHEN aff_surf_habitable=0 THEN 0 ELSE aff_prix/aff_surf_habitable END > 10000
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que si
<COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il me
semble que ça dépend des cas. Sql Serveur peut très bien décider d'évaluer
<COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
--
Thierry
"olivier" <nospam@free.fr> a écrit dans le message de news:
e9xXcj4wFHA.916@TK2MSFTNGP10.phx.gbl...
Pardonne moi thierry,
mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde condition
si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record correspondant.
Ai je bien compris ?
Olviier
"Thierry" <tper_NOSPAM@vfemail.net> a écrit dans le message de news:
eLhzOY1wFHA.1252@TK2MSFTNGP09.phx.gbl...
>
La 2ème condition ne sera jamais évaluée si la première n'est pas
vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats
WHERE
CASE
WHEN aff_surf_habitable=0 THEN 0
ELSE aff_prix/aff_surf_habitable
END > 10000
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que si <COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il me semble que ça dépend des cas. Sql Serveur peut très bien décider d'évaluer <COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
-- Thierry
"olivier" a écrit dans le message de news:
Pardonne moi thierry, mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record correspondant.
Ai je bien compris ?
Olviier
"Thierry" a écrit dans le message de news:
>
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats WHERE CASE WHEN aff_surf_habitable=0 THEN 0 ELSE aff_prix/aff_surf_habitable END > 10000
olivier
ok message recu,
Je pensais que la code s'evaluait en fonction de la lecture.
MErci Thierry
En attendant cela marche , (la 1er reponse) Est ce que tu penses que cela peut dependre des cas ?
Ou on peut considere que si cela marche ca marchera à tous les couts.
Olivier
"Thierry" a écrit dans le message de news:
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que si <COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il me semble que ça dépend des cas. Sql Serveur peut très bien décider d'évaluer <COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
-- Thierry
"olivier" a écrit dans le message de news:
Pardonne moi thierry, mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record correspondant.
Ai je bien compris ?
Olviier
"Thierry" a écrit dans le message de news:
>
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats WHERE CASE WHEN aff_surf_habitable=0 THEN 0 ELSE aff_prix/aff_surf_habitable END > 10000
ok message recu,
Je pensais que la code s'evaluait en fonction de la lecture.
MErci Thierry
En attendant cela marche , (la 1er reponse)
Est ce que tu penses que cela peut dependre des cas ?
Ou on peut considere que si cela marche ca marchera à tous les couts.
Olivier
"Thierry" <tper_NOSPAM@vfemail.net> a écrit dans le message de news:
uemBKEBxFHA.1276@tk2msftngp13.phx.gbl...
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que si
<COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il me
semble que ça dépend des cas. Sql Serveur peut très bien décider
d'évaluer <COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
--
Thierry
"olivier" <nospam@free.fr> a écrit dans le message de news:
e9xXcj4wFHA.916@TK2MSFTNGP10.phx.gbl...
Pardonne moi thierry,
mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde
condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record
correspondant.
Ai je bien compris ?
Olviier
"Thierry" <tper_NOSPAM@vfemail.net> a écrit dans le message de news:
eLhzOY1wFHA.1252@TK2MSFTNGP09.phx.gbl...
>
La 2ème condition ne sera jamais évaluée si la première n'est pas
vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats
WHERE
CASE
WHEN aff_surf_habitable=0 THEN 0
ELSE aff_prix/aff_surf_habitable
END > 10000
Je pensais que la code s'evaluait en fonction de la lecture.
MErci Thierry
En attendant cela marche , (la 1er reponse) Est ce que tu penses que cela peut dependre des cas ?
Ou on peut considere que si cela marche ca marchera à tous les couts.
Olivier
"Thierry" a écrit dans le message de news:
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que si <COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il me semble que ça dépend des cas. Sql Serveur peut très bien décider d'évaluer <COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
-- Thierry
"olivier" a écrit dans le message de news:
Pardonne moi thierry, mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record correspondant.
Ai je bien compris ?
Olviier
"Thierry" a écrit dans le message de news:
>
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats WHERE CASE WHEN aff_surf_habitable=0 THEN 0 ELSE aff_prix/aff_surf_habitable END > 10000
Thierry
Essayes :
select * from topmandats where aff_surf_habitable<>0 and aff_prix/aff_surf_habitable> 10000
-- Thierry
"olivier" a écrit dans le message de news:
ok message recu,
Je pensais que la code s'evaluait en fonction de la lecture.
MErci Thierry
En attendant cela marche , (la 1er reponse) Est ce que tu penses que cela peut dependre des cas ?
Ou on peut considere que si cela marche ca marchera à tous les couts.
Olivier
"Thierry" a écrit dans le message de news:
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que si <COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il me semble que ça dépend des cas. Sql Serveur peut très bien décider d'évaluer <COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
-- Thierry
"olivier" a écrit dans le message de news:
Pardonne moi thierry, mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record correspondant.
Ai je bien compris ?
Olviier
"Thierry" a écrit dans le message de news:
>
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats WHERE CASE WHEN aff_surf_habitable=0 THEN 0 ELSE aff_prix/aff_surf_habitable END > 10000
Essayes :
select * from topmandats
where aff_surf_habitable<>0
and aff_prix/aff_surf_habitable> 10000
--
Thierry
"olivier" <nospam@free.fr> a écrit dans le message de news:
uk2N80BxFHA.720@TK2MSFTNGP10.phx.gbl...
ok message recu,
Je pensais que la code s'evaluait en fonction de la lecture.
MErci Thierry
En attendant cela marche , (la 1er reponse)
Est ce que tu penses que cela peut dependre des cas ?
Ou on peut considere que si cela marche ca marchera à tous les couts.
Olivier
"Thierry" <tper_NOSPAM@vfemail.net> a écrit dans le message de news:
uemBKEBxFHA.1276@tk2msftngp13.phx.gbl...
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que
si <COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il
me semble que ça dépend des cas. Sql Serveur peut très bien décider
d'évaluer <COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
--
Thierry
"olivier" <nospam@free.fr> a écrit dans le message de news:
e9xXcj4wFHA.916@TK2MSFTNGP10.phx.gbl...
Pardonne moi thierry,
mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas
vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde
condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record
correspondant.
Ai je bien compris ?
Olviier
"Thierry" <tper_NOSPAM@vfemail.net> a écrit dans le message de news:
eLhzOY1wFHA.1252@TK2MSFTNGP09.phx.gbl...
>
La 2ème condition ne sera jamais évaluée si la première n'est pas
vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats
WHERE
CASE
WHEN aff_surf_habitable=0 THEN 0
ELSE aff_prix/aff_surf_habitable
END > 10000
select * from topmandats where aff_surf_habitable<>0 and aff_prix/aff_surf_habitable> 10000
-- Thierry
"olivier" a écrit dans le message de news:
ok message recu,
Je pensais que la code s'evaluait en fonction de la lecture.
MErci Thierry
En attendant cela marche , (la 1er reponse) Est ce que tu penses que cela peut dependre des cas ?
Ou on peut considere que si cela marche ca marchera à tous les couts.
Olivier
"Thierry" a écrit dans le message de news:
Lorsqu'on écrit "WHERE <COND1> AND <COND2>, on ne peut pas présumer que si <COND1> est fausse, <COND2> ne sera jamais évalué par SQL SERVER. Il me semble que ça dépend des cas. Sql Serveur peut très bien décider d'évaluer <COND2> d'abord ou d'évaluer les 2 conditions tout de même.
Donc, il est préférable d'utiliser le CASE.
-- Thierry
"olivier" a écrit dans le message de news:
Pardonne moi thierry, mais je n'ai pas compris la subtilité
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié
Normalement c'est ce que je veux faire ne pas evaluer la seconde condition si la condition 1 n'est pas rempli
Sinon dans ton deuxieme ex , on obtient zero dans le record correspondant.
Ai je bien compris ?
Olviier
"Thierry" a écrit dans le message de news:
>
La 2ème condition ne sera jamais évaluée si la première n'est pas vérifié.
Réflexion faite, je ne parierai pas la dessus.
Il est plus sage de faire :
SELECT * FROM topmandats WHERE CASE WHEN aff_surf_habitable=0 THEN 0 ELSE aff_prix/aff_surf_habitable END > 10000
Fred BROUARD
SELECT aff_id FROM topmandats WHERE aff_prix/NULLIF(aff_surf_habitable, 0) > 1000
A +
olivier a écrit:
Bonjour à tous,
j'ai un probleme au niveau d'une requete j'aimerais selectionne tous les records qui sont superieur à un certain prix mais que si les donnees sotn superieur à 0, car sinon cela me fait une division par zero.
select aff_id from topmandats where iif(IsEmpty(aff_prix)úlse and IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) > 10000
Et cela ne marche pas
Olivier
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
SELECT aff_id
FROM topmandats
WHERE aff_prix/NULLIF(aff_surf_habitable, 0) > 1000
A +
olivier a écrit:
Bonjour à tous,
j'ai un probleme au niveau d'une requete
j'aimerais selectionne tous les records qui sont superieur à un certain prix
mais que si les donnees sotn superieur à 0, car sinon cela me fait une
division par zero.
select aff_id from topmandats where
iif(IsEmpty(aff_prix)úlse and
IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) > 10000
Et cela ne marche pas
Olivier
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
SELECT aff_id FROM topmandats WHERE aff_prix/NULLIF(aff_surf_habitable, 0) > 1000
A +
olivier a écrit:
Bonjour à tous,
j'ai un probleme au niveau d'une requete j'aimerais selectionne tous les records qui sont superieur à un certain prix mais que si les donnees sotn superieur à 0, car sinon cela me fait une division par zero.
select aff_id from topmandats where iif(IsEmpty(aff_prix)úlse and IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) > 10000
Et cela ne marche pas
Olivier
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
olivier
salut fred,
C'est pas mal du tout, dis moi est ce que nullif test si c'est null mais aussi vide quand on a un zero.?
Olivier
"Fred BROUARD" a écrit dans le message de news: %
SELECT aff_id FROM topmandats WHERE aff_prix/NULLIF(aff_surf_habitable, 0) > 1000
A +
olivier a écrit:
Bonjour à tous,
j'ai un probleme au niveau d'une requete j'aimerais selectionne tous les records qui sont superieur à un certain prix mais que si les donnees sotn superieur à 0, car sinon cela me fait une division par zero.
select aff_id from topmandats where iif(IsEmpty(aff_prix)úlse and IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) > 10000
Et cela ne marche pas
Olivier
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
salut fred,
C'est pas mal du tout,
dis moi est ce que nullif test si c'est null mais aussi vide quand on a un
zero.?
Olivier
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
%239O00XmxFHA.596@TK2MSFTNGP12.phx.gbl...
SELECT aff_id
FROM topmandats
WHERE aff_prix/NULLIF(aff_surf_habitable, 0) > 1000
A +
olivier a écrit:
Bonjour à tous,
j'ai un probleme au niveau d'une requete
j'aimerais selectionne tous les records qui sont superieur à un certain
prix
mais que si les donnees sotn superieur à 0, car sinon cela me fait une
division par zero.
select aff_id from topmandats where
iif(IsEmpty(aff_prix)úlse and
IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) >
10000
Et cela ne marche pas
Olivier
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
C'est pas mal du tout, dis moi est ce que nullif test si c'est null mais aussi vide quand on a un zero.?
Olivier
"Fred BROUARD" a écrit dans le message de news: %
SELECT aff_id FROM topmandats WHERE aff_prix/NULLIF(aff_surf_habitable, 0) > 1000
A +
olivier a écrit:
Bonjour à tous,
j'ai un probleme au niveau d'une requete j'aimerais selectionne tous les records qui sont superieur à un certain prix mais que si les donnees sotn superieur à 0, car sinon cela me fait une division par zero.
select aff_id from topmandats where iif(IsEmpty(aff_prix)úlse and IsEmpty(aff_surf_habitable)úlse,(aff_prix/aff_surf_habitable),0) > 10000
Et cela ne marche pas
Olivier
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************