create table #Tbl1 ( number int primary key, name varchar (25) );
create table #Tbl2 ( number int, field1 varchar (5), field2 varchar (5) ); go insert into #Tbl1 values ( 1 , 'Value1' ); insert into #Tbl1 values ( 2 , 'Value2' ); go insert into #Tbl2 values ( 1 , 'from', 'me'); insert into #Tbl2 values ( 1 , 'from', 'me1'); insert into #Tbl2 values ( 1 , 'from1', 'me'); insert into #Tbl2 values ( 1 , 'to', 'you'); insert into #Tbl2 values ( 1 , 'to', 'me'); go insert into #Tbl2 values ( 2 , 'to', 'you'); insert into #Tbl2 values ( 2 , 'to', 'you'); insert into #Tbl2 values ( 2 , 'to1', 'you'); insert into #Tbl2 values ( 2 , 'to', 'you1'); go select* from #Tbl1;
select* from #Tbl2;
go select g1.Number , g1.name from #Tbl1 as g1 join #Tbl2 as g2 on (g1.number = g2.number) where ( g2.field1 = 'from' And g2.field2 = 'me' ) Or ( g2.field1 = 'to' And g2.field2 = 'you' ) group by g1.Number , g1.name having sum( case when ( g2.field1 = 'from' And g2.field2 = 'me' ) then -1 when ( g2.field1 = 'to' And g2.field2 = 'you' ) then 1 end ) = 0; go drop table #Tbl1; drop table #Tbl2; |