I don't have a 2000 instance handy (you really should upgrade, you're 4-5 releases behind), but I think that this should work:
declare @Customers table (CustomerID int,Name varchar(10))
insert into @Customers (CustomerID,Name)
select 1,'Peter' union all select 2,'Ray' union all
select 3,'Egon' union all select 4,'Winston' union all
select 5,'Dana'
declare @Addresses table (AddressID int, CustomerID int,
AddressType varchar(30))
insert into @Addresses (AddressID,CustomerID,AddressType)
select 1,1,'INVOICE' union all select 2,1,'DELIVERY' union all
select 3,2,'DELIVERY' union all select 4,2,'CORRESPONDENCE' union all
select 5,4,'INVOICE' union all select 6,5,'CORRESPONDENCE'
select
c.CustomerID,
c.Name,
CASE MAX(CASE
WHEN a.AddressType = 'Invoice' THEN 2
WHEN a.AddressType IS NOT NULL THEN 1
END
) WHEN 2 THEN 'HASINVOICE'
WHEN 1 THEN 'HASOTHER'
ELSE 'NONE'
END as AddressFlag
from
@Customers c
left join
@Addresses a
on
c.CustomerID = a.CustomerID
group by
c.CustomerID,
c.Name
Produces:
CustomerID Name AddressFlag
----------- ---------- -----------
5 Dana HASOTHER
3 Egon NONE
1 Peter HASINVOICE
2 Ray HASOTHER
4 Winston HASINVOICE