>SELECT cn_name, cn_port, cn_printer FROM lcontrol ; > WHERE !EMPTY(lcontrol.cn_name) .and. lcontrol.cn_name IN ; > (SELECT ctrlname FROM ctrlset WHERE ctrlset.printform = .T.); > INTO TABLE (hdir+"tTEMPLCONTROL.DBF") >>so does the reverse:
>SELECT cn_name, cn_port, cn_printer FROM lcontrol ; > WHERE !EMPTY(lcontrol.cn_name) .and. lcontrol.cn_name IN ; > (SELECT ctrlname FROM ctrlset WHERE ctrlset.printform = .F.); > INTO TABLE (hdir+"tTEMPLCONTROL.DBF") >However, the reverse of the first using NOT does not work, any idea why anyone?
>SELECT cn_name, cn_port, cn_printer FROM lcontrol ; > WHERE !EMPTY(lcontrol.cn_name) .and. lcontrol.cn_name NOT IN ; > (SELECT ctrlname FROM ctrlset WHERE ctrlset.printform = .T.); > INTO TABLE (hdir+"tTEMPLCONTROL.DBF") >The 2nd two statements should produce the same results, but they do not. What is wrong with the "not in" portion?
SELECT cn_name, cn_port, cn_printer FROM lcontrol ; WHERE !EMPTY(lcontrol.cn_name) .and. ; NOT EXISTS(SELECT ctrlname FROM ctrlset WHERE lcontrol.cn_name = ctrlset.ctrlname AND ctrlset.printform = .T.); INTO TABLE (hdir+"tTEMPLCONTROL.DBF")