日期:2014-05-18  浏览次数:20636 次

sql查询只符合某一个
PS:本人新手,望指导:

卡号     姓名     项目
001       小王       A
001       小王       B
001       小王       C
003       小黄       A
004       小名       B
005       小兰       A
005       小兰       B
006       小张       A
006       小张       C
007       小陈       A

要求:       查询出只做过项目A的卡号、姓名
卡号       姓名       项目
003         小黄       A
007         小陈       A      

------解决方案--------------------
SQL code

--> 测试数据:[test]
if object_id('[test]') is not null drop table [test]
create table [test]([卡号] varchar(3),[姓名] varchar(4),[项目] varchar(1))
insert [test]
select '001','小王','A' union all
select '001','小王','B' union all
select '001','小王','C' union all
select '003','小黄','A' union all
select '004','小名','B' union all
select '005','小兰','A' union all
select '005','小兰','B' union all
select '006','小张','A' union all
select '006','小张','C' union all
select '007','小陈','A'


select * from test a
where not exists(select 1 from test b where a.姓名=b.姓名 and b.项目<>'A')
and a.项目='A'

/*
卡号    姓名    项目
003    小黄    A
007    小陈    A
*/