SQL高级编程-子查询

---SQL高级编程--子查询

 select * from student
 where BornDate=(select BornDate from Student where StudentName='欧阳燕飞')



 select max(studentresult) as 最大值,min(studentresult) as 最小值 from Result
 where ExamDate=(select max(ExamDate) from Result where SubjectId=
 (select SubjectId from Subject where SubjectName='HTML和CSS网页技术')
 )and SubjectId=(select SubjectId from Subject where SubjectName='HTML和CSS网页技术')


 select studentno,studentname from student where StudentNo in(
 select StudentNo from Result where SubjectId=(select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
 )and ExamDate=(select max(ExamDate) from Result where SubjectId=(
select subjectid from Subject where SubjectName='HTML和CSS网页技术'
))
 )
 


 select 学生姓名=studentname from student where StudentNo in(
 select 学号=studentno from result inner join subject on result.subjectid=subject.subjectid
 where studentresult=60 and subjectname='HTML和CSS网页技术')



 select subjectname,subjectid,Gradeid from Subject
 select studentresult from Result where subjectid=1




select max(studentresult) as 最高分,min(studentresult) as 最低分 from Result inner join student on Student.StudentNo=Result.StudentNo
where Result.ExamDate=(select max(result.ExamDate) from Result inner join Subject on Subject.SubjectId=Result.SubjectId where SubjectName='HTML和CSS网页技术'
)
and Subjectid=(select Subjectid from Subject
where SubjectName='HTML和CSS网页技术'
)



--实例6
select studentno, studentname from student where studentno   in (
select studentno from result where subjectid=(
select subjectid from Subject where SubjectName='HTML和CSS网页技术'
) and ExamDate=(
select max(ExamDate) from Result
where SubjectId=(
select subjectid from Subject where SubjectName='HTML和CSS网页技术'
)
)
)
--NOT IN 子查询
select studentno, studentname,gradeid from student where studentno NOT  in (
select studentno from result where subjectid=(
select subjectid from Subject where SubjectName='HTML和CSS网页技术'
) and ExamDate=(
select max(ExamDate) from Result
where SubjectId=(
select subjectid from Subject where SubjectName='HTML和CSS网页技术'
)
)
)and GradeId=(
select gradeid from Subject
where SubjectName='HTML和CSS网页技术'
)



--实例8
if exists(
select * from Result where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)and ExamDate=(
select max(ExamDate) from result where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)
)and StudentResult>80
)

begin
update Result set StudentResult=100
where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)
and examdate=
(
select max(ExamDate) from Result where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)
)and StudentResult<=98

update Result set StudentResult=StudentResult+2
where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)
and examdate=
(
select max(ExamDate) from Result where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)
)and StudentResult<=98
end
else
begin
update result set StudentResult=StudentResult+5
where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)and ExamDate=(select max(ExamDate) from Result where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)
)
end


select * from result where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)
and examdate=
(
select max(ExamDate) from Result where SubjectId=(
select SubjectId from Subject where SubjectName='HTML和CSS网页技术'
)
)




--答案
if exists
	(
	  select studentresult from Result
	  where SubjectId=
	  (
		select SubjectId from Subject
		where SubjectName='HTML和CSS网页技术'
	  )
	  and ExamDate=
	  (
		select MAX(ExamDate) from Result
		where SubjectId=
		(
		  select SubjectId from Subject
		  where SubjectName='HTML和CSS网页技术'
		)
	  )
	  and StudentResult>80
	)
	begin
	   --有,每人提分 99
	   update Result set StudentResult=100 
	   where SubjectId=
	  (
		select SubjectId from Subject
		where SubjectName='HTML和CSS网页技术'
	  )
	  and ExamDate=
	  (
		select MAX(ExamDate) from Result
		where SubjectId=
		(
		  select SubjectId from Subject
		  where SubjectName='HTML和CSS网页技术'
		)
	  )
	  and StudentResult>98
	   
	   update Result set StudentResult+=2 
	   where SubjectId=
	  (
		select SubjectId from Subject
		where SubjectName='HTML和CSS网页技术'
	  )
	  and ExamDate=
	  (
		select MAX(ExamDate) from Result
		where SubjectId=
		(
		  select SubjectId from Subject
		  where SubjectName='HTML和CSS网页技术'
		)
	  )
	  and StudentResult<=98
	end
	else
	begin
	   --没有,整体+5
	   update Result set StudentResult+=5
	   where SubjectId=
	  (
		select SubjectId from Subject
		where SubjectName='HTML和CSS网页技术'
	  )
	  and ExamDate=
	  (
		select MAX(ExamDate) from Result
		where SubjectId=
		(
		  select SubjectId from Subject
		  where SubjectName='HTML和CSS网页技术'
		)
	  )
	   
	end





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值