日期:2014-05-17 浏览次数:20879 次
SELECT col1
FROM table
WHERE col2 IN ('钢笔','毛笔','篮球')
GROUP BY Col1
HAVING COUNT(1)
------解决方案--------------------
declare @test table(col1 nvarchar(3),col2 nvarchar(3),col3 varchar(10),col4 nvarchar(5))
insert into @test
select N'艾凤琴', N'钢笔', '2012-08-29', N'大华广场' union all
select N'艾凤琴', N'毛笔', '2012-08-29', N'中心广场' union all
select N'艾凤琴', N'篮球', '2012-08-29', N'华人广场' union all
select N'艾胡蓉', N'钢笔', '2012-08-29', N'中国广场' union all
select N'艾胡蓉', N'毛笔', '2012-08-29', N'百佳乐广场' union all
select N'艾胡蓉', N'篮球', '2012-08-29', N'华人广场' union all
select N'白林梅', N'钢笔', '2012-08-29', N'中国广场' union all
select N'白林梅', N'毛笔', '2012-08-29', N'百佳乐广场' union all
select N'白玲', N'钢笔', '2012-08-29', N'中国广场' union all
select N'白玲', N'毛笔', '2012-08-29', N'百佳乐广场' union all
select N'白玲', N'a4纸', '2012-08-27', N'华人广场'
select col1,col3 from @test
where col2 in (N'钢笔',N'毛笔',N'篮球')
group by col1,col3
having count(distinct col2)=3
/*
col1 col3
---- ----------
艾凤琴 2012-08-29
艾胡蓉 2012-08-29
*/