Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Join tables on CASE 1

Status
Not open for further replies.

bmacbmac

IS-IT--Management
Jan 26, 2006
392
US
Hi. I have two tables:

Code:
create table #mytable1 (lot varchar(3), addition varchar(25))
insert into #mytable1 values ('9', 'ANDERSON ADD')

create table #mytable2 (lot varchar(3), addition varchar(25))
insert into mytable values ('1', 'ANDERSON ADD')
insert into mytable2 values ('9', 'ANDERSON ADD')
insert into mytable2 values ('ALL', 'ANDERSON ADD')
insert into mytable2 values ('1', 'JUNIPER SUB')
insert into mytable2 values ('9', 'ANDERSON ADD')
insert into mytable2 values ('8', 'ANDERSON ADD')

I would like to select everything in #mytable1 and join any matching addition and lot items in #mytable2:
Code:
select * 
from #mytable1
join #mytable2 on 
#mytable1.lot = #mytable2.lot
and #mytable1.addition = #mytable2.addition

However, any time the lot field shows ALL in #mytable2 I would like it to also join on #mytable1.lot = #mytable2.lot. (They use the word ALL to mean all lots). Ideally I would like:

#mytable1.lot, #mytable1.addition, #mytable2.lot, #mytable2.addition
9, ANDERSON ADD, 9, ANDERSON ADD
9, ANDERSON ADD, ALL, ANDERSON ADD

I have been playing around with CASE, but can't quite make it work... or know if this is the best way to go.

 
Code:
select * 
from #mytable1
join #mytable2 on 
#mytable2.lot in (#mytable1.lot,'ALL')
and #mytable1.addition = #mytable2.addition

Bye, Olaf.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top