>>You do not understand me and I really need to run now, but anyway.
>>
>>Your expression is:
>>
>>myCol in ('Val1', 'Val2') or (myCol='Val2' and someLogicalCol)
>>
>>--------------------------
>>
>>That expression is contradictory as the first one is less restrictive than the second. If myCol = 'Val2' it's true and so there is no point to check the logical value.
>>
>>I assumed you wanted either val1 or (val2 only when some logical condition is true).
>>
>>Or may be you want: myCol is one of the values (1 or 2) or it doesn't matter what myCol is but if someLogicalCol is true, give me these records.
>>
>>So, please explain your conditions in English and remove ambiguity.
>>
>>
>You're right. I didn't understand your point. I'll need to get back to the project manager on why it was speced out this way and get a better spec.
>
>Unfortunately, this doesn't address the original question of why it worked in one environment and not another.
>
>I don't think that piece of it is worth bothering with any more. It's working now so on to the next phase.
>
Well, just realize the query is most likely wrong.
If PART_SOURC is set to "MAKE" then the condition is true based on IN ('PHANTOM', 'MAKE'). There is no way for the condition after the OR to ever be true (because, in order for it to be true PART_SOURC has to be 'MAKE' which will always match on the first condition and won't make it to the second one after the OR).