I want to identify acct_ids that do not have any invoices after 1/1/2014
Then your condition in your subquery needs to be:
HAVING max(bill_dt) < '1/1/2014'
You're also not using the invoice_detail
table except in the subquery, so you can take it out of the main query:
select a.acct_id, c.bill_dt
from account a
inner join
( select acct_id, max(bill_dt) as bill_dt from invoice_detail
group by acct_id
HAVING max(bill_dt) < '1/1/2014'
) c on a.acct_id = c.acct_id
and a.acct_stat_id = '275'
and not a.acct_id in (select acct_id from contract where cntrct_stat_id in ('394','554','555','556'))
and not a.acct_id in (select acct_id from billing_adj where bill_adj_stat_id in ('4','394','553','554','555'))
group by a.acct_id, c.bill_dt
order by a.acct_id ASC