怎么查询一个表里同时满足有三个条件记录的数据
如何查询一个表里同时满足有三个条件记录的数据
如:table
col1 col2 col3 col4 col5
艾凤琴 钢笔 2012-08-29 大华广场
艾凤琴 毛笔 2012-08-29 中心广场
艾凤琴 篮球 2012-08-29 华人广场
艾胡蓉 钢笔 2012-08-29 中国广场
艾胡蓉 毛笔 2012-08-29 百佳乐广场
艾胡蓉 篮球 2012-08-29 华人广场
白林梅 钢笔 2012-08-29 中国广场
白林梅 毛笔 2012-08-29 百佳乐广场
白玲 钢笔 2012-08-29 中国广场
白玲 毛笔 2012-08-29 百佳乐广场
白玲 a4纸 2012-08-27 华人广场
我想查出同一天内 既买了钢笔、毛笔和篮球 的人 即 艾凤琴和艾胡蓉 请问怎样写?请高手指点
------解决方案--------------------
select col1 from tb group by col1,col3 having count(*)=3
------解决方案--------------------
如:table
col1 col2 col3 col4 col5
艾凤琴 钢笔 2012-08-29 大华广场
艾凤琴 毛笔 2012-08-29 中心广场
艾凤琴 篮球 2012-08-29 华人广场
艾胡蓉 钢笔 2012-08-29 中国广场
艾胡蓉 毛笔 2012-08-29 百佳乐广场
艾胡蓉 篮球 2012-08-29 华人广场
白林梅 钢笔 2012-08-29 中国广场
白林梅 毛笔 2012-08-29 百佳乐广场
白玲 钢笔 2012-08-29 中国广场
白玲 毛笔 2012-08-29 百佳乐广场
白玲 a4纸 2012-08-27 华人广场
我想查出同一天内 既买了钢笔、毛笔和篮球 的人 即 艾凤琴和艾胡蓉 请问怎样写?请高手指点
------解决方案--------------------
select col1 from tb group by col1,col3 having count(*)=3
------解决方案--------------------
- SQL code
SELECT col1 FROM table WHERE col2 IN ('钢笔','毛笔','篮球') GROUP BY Col1 HAVING COUNT(1)
------解决方案--------------------
- SQL code
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 */