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
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
--> 测试数据:[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
*/
--> 测试数据:[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
*/
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba')
BEGIN
DROP TABLE tba
END
GO
CREATE TABLE tba
(
卡号 VARCHAR(10),
姓名 VARCHAR(10),
项目 VARCHAR(10)
)
GO
INSERT INTO tba
SELECT '001', '小王', 'A' UNION
SELECT '001', '小王', 'B' UNION
SELECT '001', '小王', 'C' UNION
SELECT '003', '小黄', 'A' UNION
SELECT '004', '小名' , 'B' UNION
SELECT '005', '小兰', 'A' UNION
SELECT '005', '小兰', 'B' UNION
SELECT '006', '小张' , 'A' UNION
SELECT '006', '小张', 'C' UNION
SELECT '007', '小陈' , 'A'
SELECT * FROM tba AS B
WHERE 项目 = 'A' AND NOT EXISTS (SELECT 1 FROM tba AS A WHERE A.卡号 = B.卡号 AND A.项目 <> 'A')卡号 姓名 项目
003 小黄 A
007 小陈 A
--> 测试数据:[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')
/*
卡号 姓名 项目
003 小黄 A
007 小陈 A
*/--更正一下尼玛,我的一楼怎么又没了?