首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求 一个SQL语句解决思路

2012-01-07 
求 一个SQL语句已知:B1,B2,B3字段A,字段B是主建字段A字段B字段CA1B1C1A1B2C1A1B3C1A2B1C2A2B2C3A2B3C2A3B4

求 一个SQL语句
已知:   B1,B2,B3       字段A     ,字段B   是主建
            字段A               字段B                   字段C
              A1                 B1                           C1                
              A1                 B2                           C1                
              A1                 B3                           C1        
              A2                 B1                           C2              
              A2                 B2                           C3                
              A2                 B3                           C2  
              A3                 B4                           C2              
              A4                 B1                           C3                
              A4                 B2                           C3
              A4                 B3                           C3
目的:抽出同时包含   B1,B2,B3   的字段A,字段B的数据
            结果应该为以下数据  
              A1                 B1                           C1                
              A1                 B2                           C1                
              A1                 B3                           C1        
              A4                 B1                           C3                


              A4                 B2                           C3
              A4                 B3                           C3
谢谢!



[解决办法]

declare @a table(name1 varchar(20),name2 varchar(20),name3 varchar(20))
insert @a
select 'A1 ', 'B1 ', 'C1 '
union all
select 'A1 ', 'B2 ', 'C1 '
union all
select 'A1 ', 'B3 ', 'C2 '
union all
select 'A2 ', 'B1 ', 'C2 '
union all
select 'A2 ', 'B2 ', 'C3 '
union all
select 'A2 ', 'B3 ', 'C2 '
union all
select 'A2 ', 'B4 ', 'C2 '
union all
select 'A4 ', 'B1 ', 'C3 '
union all
select 'A4 ', 'B2 ', 'C3 '
union all
select 'A4 ', 'B3 ', 'C3 '

select * from @a where name1 in(
select name1 from @a group by name1 having count(1)=(len( 'b1,b2,b3 ')-2)/2)


热点排行