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.
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.