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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.

Quelqu'un aurait-il une explication ?

Merci d'avance.