Я бы сделала так
update smcard set accepted=2, cashload=0, receiptok=0 where article in (select article from supermag.smcard
minus select s2.article from supermag.smdocuments s1, supermag.smspec s2
WHERE s1.doctype=s2.doctype and s1.id=s2.docid and s1.createdat between add_months(sysdate,-24) and sysdate)
НО У СЕБЯ НЕ ДЕЛАЛА. Надо тестить. Может кто из опытных чего выложит - у нас полгода базе всего.