PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → [WB9] problème de compréhension execution requête SQL HF
[WB9] problème de compréhension execution requête SQL HF
Iniciado por evariste2, fev., 03 2006 4:36 PM - Sem resposta
Publicado em fevereiro, 03 2006 - 4:36 PM
Bonjour,

Je travaille sous WebDev 9 avec Hyperfile 7 classique.

J'ai une table "demande" saine avec une clé primaire nDemande , et notamment un champ dateDebutRemp et un champ dateFinRemp, de type date. Cette table contient 11211 tuples.

J'exécute dans wdSQL la requête ci-dessous, requête qui pourrait être réduite, mais je la prends pour exemple :

SELECT nDemande FROM demande
WHERE
( dateDebutRemp >= '20060101' and dateDebutRemp <= '20060131' ) or
( dateFinRemp >= '20060101' and dateFinRemp <= '20060131' ) or
(dateDebutRemp < '20060101' and dateFinRemp > '20060131')

j'obtiens 3813 enregistrements. Cette valeur est fausse.
Si je place la dernière condition en premier comme ceci :

SELECT
nDemande FROM demande
WHERE
(dateDebutRemp < '20060101' and dateFinRemp > '20060131') or
( dateDebutRemp >= '20060101' and dateDebutRemp <= '20060131' ) or
( dateFinRemp >= '20060101' and dateFinRemp <= '20060131' )

j'obtiens 4111 enregistrements. Cette valeur est correcte.
Comment expliquer cette différence de 298 enregistrements dans le résultat de ces deux requêtes qui ne diffèrent que dans l'ordre des conditions dans la clause where ?

Merci à tous pour votre aide ! :-)