>But they are not. It seems I had it backwards. It works as long as there is an ORDER BY. With no ORDER BY, the numbers are wild.
>
>I ran the query with no grouping to see if I could tell what was happening. What is happening is that without the ORDER BY, this phrase:
>
>
> WHERE b.control_no in ;
> (SELECT towfky FROM redeem WHERE redeem.dredeemdat>= {01/01/2014} AND redeem.dredeemdat<= {12/31/2014}) ;
>
>
>
>is responding true and including records where redeem.dredeemdat is empty!
Of course it will include these records.
You check IF b.control_no in some values between some dates, BUT what happens
if some b.control_no IS in that list but have empty date?
It will be included in the result.
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.