Problème de test sur un champ
Bonjour tout le monde.
Mon problème est que, dans mon application, j'utilise des requêtes SQL et des procédures stockées, et dans une de mes requêtes, ci-jointe, je dois tester sur les valeurs de 4 champs: {Date1Du; Au}; {Date2Du; Au}, et je ne peux avoir les 4 champs remplis à la fois, c'est soit {Date1Du; Au} ou bien {Date2Du; Au}, sinon, les deux vides.
Je dois avoir une seule requête qui à la fois teste si des champs sont remplis, et suivant le résultat, on affichera le résultat de la recherche.
Ci-dessous ma requête:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| SELECT Champ1, Date1,Champ2,Champ3,Champ4,Champ5,Champ6,Champ7, Date2
FROM Table1,Table2,Table3,Table4
WHERE
Table1.idd = Table4.idd
AND Table1.num1 = Table2.num1
AND Table1.num2 = Table3.num2
AND Table1.etat = (SELECT etat FROM Table4 WHERE libelle = 'Destruction')
AND (Table1.num1 in (SELECT num1 FROM Table3 WHERE num2 in (SELECT num2 FROM Table5 WHERE Nuser ='12')or num2='5685')or Table1.num1='1379')
AND isnull(Champ6,0) LIKE ''+ '' + '%'
AND isnull(Champ5,0) like ''+ '' +'%'
AND isnull(Table1.Date1,'01/01/1900') BETWEEN ISNULL('','01/01/2008') AND ISNULL('','31/12/2009')
AND ISNULL(Table1.Date2,'01/01/1900') BETWEEN ISNULL('01/01/2008','01/01/2008') AND ISNULL('31/12/2010','31/12/2009')
AND isnull(Table1.Champ2,0) like ''+ '' +'%'
ORDER BY
Date1 |
Le problème se pose au niveau du test sur les valeurs Date1 et Date2. je n'ai pas le résultat attendu. :aie:
Quelqu'un aurait-il une explication ? :roll:
Merci d'avance.