有如下表
姓名 科目 分数
小强 语文 80
小明 数学 60
小伟 语文 50
小东 语文 68
小东 数学 88
小强 化学 96
小伟 化学 76
小强 数学 83
小伟 化学 72
小强 英语 80
小明 物理 68试用一条SQL语句,选取全部科目都在80分以上的学生名单!
姓名 科目 分数
小强 语文 80
小明 数学 60
小伟 语文 50
小东 语文 68
小东 数学 88
小强 化学 96
小伟 化学 76
小强 数学 83
小伟 化学 72
小强 英语 80
小明 物理 68试用一条SQL语句,选取全部科目都在80分以上的学生名单!
from tablename
group by 姓名
having min(分数)>=80
Where 分数 > 80
Group By 姓名
Having Count(姓名) = (Select Count(Distinct 科目) From 表)
如果某人有些科目沒有分数呢?
(姓名 varchar(10), 科目 varchar(10), 分數 int)
insert into t
select '小強', '語文', 80 union all
select '小明', '數學', 60 union all
select '小偉', '語文', 50 union all
select '小東', '語文', 68 union all
select '小東', '數學', 88 union all
select '小強', '化學', 96 union all
select '小偉', '化學', 76 union all
select '小強', '數學', 83 union all
select '小偉', '化學', 72 union all
select '小強', '英語', 80 union all
select '小明', '物理', 68select a.* from t a
join
(
select 姓名,min(分數)as 分數 from t group by 姓名 having min(分數)>=80
)b on a.姓名=b.姓名姓名 科目 分數
---------- ---------- -----------
小強 英語 80
小強 數學 83
小強 化學 96
小強 語文 80(4 row(s) affected)
上面那种我试过查不出数据的~~~
----------
哪個?试用一条SQL语句,选取全部科目都在80分以上的学生名单!
---------
這個稍微有點歧義。1.學生在其選取的科目中,沒有分數在80分以下的就是Haiwer(海阔天空)的和我寫的第二個2.學生必須選取了所有的科目,並且沒有分數在80分以下的就是我寫的第一個