>I am not sure what problem you are having, but the conditions you 
>describe are a contradiction.
>
>The following SQL give the correct results:
>
>select p.ID, p.BIZTYPE_DESCRIPTION, p.CostingType_Description, p.Description, 
>p.CGS_Description, p.Date_Closing, 
>p.TOTAL_REVENUE, p.EXCHANGE_RATE, p.CGSSHARE_PCT from V_BD_Biz_Prim p where 
>(p.BIZTYPE_ID = :BizType_ID)  and 
>((p.Date_Closing is null) or (p.TOTAL_REVENUE is null or p.TOTAL_REVENUE = 0) 
>or (p.EXCHANGE_RATE is null or 
>p.EXCHANGE_RATE = 0) or (p.CGSSHARE_PCT is null or p.CGSSHARE_PCT = 0))
>
>union
>
>select p.ID, p.BIZTYPE_DESCRIPTION, p.CostingType_Description, p.Description, 
>p.CGS_Description, p.Date_Closing, 
>p.TOTAL_REVENUE, p.EXCHANGE_RATE, p.CGSSHARE_PCT from V_BD_Biz_Prim p where 
>(p.BIZTYPE_ID = :BizType_ID)  and 
>((p.Date_Closing is not null and p.Date_Closing >= :DateA and p.Date_Closing 
><= :DateB) or (p.TOTAL_REVENUE is null or 
>p.TOTAL_REVENUE = 0) or (p.EXCHANGE_RATE is null or p.EXCHANGE_RATE = 0) or 
>(p.CGSSHARE_PCT is null or p.CGSSHARE_PCT = 0))

This is a very different query, Nols, and can simply be rewritten

select p.ID, p.BIZTYPE_DESCRIPTION, p.CostingType_Description, p.Description, 
p.CGS_Description, p.Date_Closing,
       p.TOTAL_REVENUE, p.EXCHANGE_RATE, p.CGSSHARE_PCT from V_BD_Biz_Prim p 
where p.BIZTYPE_ID = :BizType_ID
  and (p.Date_Closing is null 
    or p.Date_Closing between :DateA and :DateB
    or coalesce(p.TOTAL_REVENUE, 0) = 0 
    or coalesce(p.EXCHANGE_RATE, 0) = 0
    or coalesce(p.CGSSHARE_PCT,  0) = 0)

So, where do you want OR and where do you want AND?

HTH,
Set

Reply via email to