求一SQL语句,大家帮帮忙

荷梅月剑 2008-05-22 12:13:04
数据表如下 tb_KS
name km fs
张三 数学 100
张三 语文 80
张三 英语 50
李四 数学 70
李四 英语 80
王五 语文 70
王五 英语 80
赵六 英语 100
杰克 数学 0


SELECT * FROM tb_KS WHERE km='数学' AND km='英文'
返回结果为null
SELECT * FROM tb_KS WHERE km='数学' OR km='英文'
返回结果是有参加数学或参加英语考试的人,不符合我想要的结果

我想写一SQL语句 筛选出同时有参加数学考试及英语考试的的人,是同时参加,大家帮帮忙吧
如果正确的话,返回的结果应该是 张三 李四
...全文
57 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzy_love_sly 2008-05-22
  • 打赏
  • 举报
回复
select * from tb_ks t where exists(
select 1 from tb_ks where name=t.name and (km='数学' or km='英文')
group by name having count(1)>1
)
dawugui 2008-05-22
  • 打赏
  • 举报
回复
select name from 
(
SELECT distinct name FROM tb_KS WHERE km='数学'
union all
SELECT distinct name FROM tb_KS WHERE km='英文'
) t
group by name having count(*) = 2
--------------------------------------
select * from tb_ks where name in
(
select name from
(
SELECT distinct name FROM tb_KS WHERE km='数学'
union all
SELECT distinct name FROM tb_KS WHERE km='英文'
) t
group by name having count(*) = 2
)
hery2002 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 Drunkard_Faron 的回复:]
呀,hery2002给的方法不好使
[/Quote]
为啥?
select * from tb_ks where km ='数学' and name in(select name from tb_ks where km ='英文')  

只要把对应的语文和数学换成你对应的就可以了阿
荷梅月剑 2008-05-22
  • 打赏
  • 举报
回复
呀,hery2002给的方法不好使
荷梅月剑 2008-05-22
  • 打赏
  • 举报
回复
感谢 散分~
hery2002 2008-05-22
  • 打赏
  • 举报
回复
select * from tb_ks where km ='语文' and name in(select name from tb_ks where km ='数学')

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧