The WHERE clause I posted is equivalent of the WHERE clause from your query. What result do you want/expect?
>But it give me a bad result...
>
>If H.cpauseid <> 0 AND H.cpauseid2 <> 0 =========> 1 Day
>If H.cpauseid <> 0 AND H.cpauseid2 = 0 =========> 1 Day
>If H.cpauseid2 <> 0 AND H.cpauseid1 = 0 =========> 1 Day
>If H.cpauseid2 = 0 AND H.cpauseid1 <> 0 =========> 1 Day
>If H.cpauseid2 =0 AND H.cpauseid1 = 0 =========> 0 Day
>
>
>bernhart
>
>
>
>
>>Try
WHERE H.ddate BETWEEN m.D_debut AND m.d_fin ;
>> AND NOT ( H.cpauseid = 0 AND H.cpauseid2 = 0 )
>>* or
>> WHERE H.ddate BETWEEN m.D_debut AND m.d_fin ;
>> AND ( H.cpauseid <> 0 OR H.cpauseid2 <> 0 )
>>
>>
>>
>>>Fabio,
>>>
>>>a big thank !!!!
>>>
>>>This query give goods results but it is possible to optimize the whereClaus ?
>>>
>>>bernhart
>>>
>>>
...
>>> WHERE H.ddate BETWEEN m.D_debut AND m.d_fin AND;
>>> ( ( H.cpauseid <> 0 AND H.cpauseid2 <> 0 ) OR ;
>>> ( H.cpauseid2 <> 0 AND H.cpauseid = 0 ) OR;
>>> ( H.cpauseid2 = 0 AND H.cpauseid <> 0 ) );
>>> GROUP BY 1 ;
>>> INTO CURSOR Temp2
>>>
>>>
>>>
>>>
--sb--