{DB2} Problème de combinaison OR et AND

Fermé
rodrigue62 Messages postés 190 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 10 janvier 2011 - 11 févr. 2010 à 09:30
rodrigue62 Messages postés 190 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 10 janvier 2011 - 11 févr. 2010 à 15:46
Bonjour,

J'ai une requête de ce type :

SELECT A.CHAMP1 AS "champ 1",A.CHAMP2 AS "champ 2",A.CHAMP3 AS "champ 3",A.CHAMP4 AS "champ 4",A.DATE_DEB1 AS "Date début 1",A.DATE_FIN1 AS "Date fin 1",A.DATE_DEB2 AS "Date début 2",A.DATE_FIN2 AS "Date fin 2"
FROM TABLE A
WHERE A.CHAMP2 IS NOT NULL
AND A.CHAMP4= 'PRD'
AND A.DATE_DEB1 <= SYSDATE
AND A.DATE_FIN1>SYSDATE
AND ((A.DATE_DEB2 <= SYSDATE AND A.DATE_FIN2>SYSDATE)
OR (A.DATE_DEB2 <= SYSDATE AND A.DATE_FIN2 IS NULL)
OR ((A.DATE_DEB2 IS NULL AND A.DATE_FIN2>SYSDATE)
OR (A.DATE_DEB2 IS NULL AND A.DATE_FIN2 IS NULL))
ORDER BY A.CHAMP2 ASC

Les résultats retournés sont bien avec une "date debut 2" avant la date du jour ou nulle et une "date fin 2" supérieure à la date du jour ou nulle. Par contre le "champ 4" n'est pas forcément à PRD, la "date de début 1" n'est pas forcément inférieure à la date du jour et la "date de fin 1" n'est pas forcément supérieure à la date du jour.

Quelqu'un aurrait-il une idée de la manière dont je dois m'y prendre pour réussir à obtenir les résultats attendus, et me dire pourquoi ce n'est pas le cas ici?
Merci d'avance.

2 réponses

Bonjour

La requête telle que tu la donnes ici n'est pas correcte et ne devrait rien te rendre du tout, les parenthèses ne se referment pas toutes
Je soupçonne que tu as une ( en trop dans ... OR ((A.DATE_DEB2 IS NULL...
0
rodrigue62 Messages postés 190 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 10 janvier 2011 30
11 févr. 2010 à 15:46
Oui et effectivement ce qui est tres bizard c'est que je suis entièrement d'accord avec toi, mais c'est si je l'enlève que çà ne marche plus du tout et que je n'ai plus aucun résultat...
Trop bizard ce truc.
0