>select * from promolist; >where qq_promo and BITTEST(region,0); >and DATE() <= promolist.expire; >and IIF(!EMPTY(promolist.qqfield) and &promolist.qqfield ,.T.,.F.) >The problem is that the dot stops macro substitution. Try copying the field to a variable first, something like this:
MyField = promolist.qqfield select * from promolist; where qq_promo and BITTEST(region,0); and DATE() <= promolist.expire; and !EMPTY(promolist.qqfield) and &MyFieldNote that I simplified the unnecessary iif().