优化MySchool SQL编程 第三章
来源:互联网 发布:应聘数据分析师面试题 编辑:程序博客网 时间:2024/06/05 05:38
/****** Script for SelectTopNRows command from SSMS ******/SELECT TOP 1000 [StudentNo] ,[LoginPwd] ,[StudentName] ,[Gender] ,[GradeId] ,[Phone] ,[Address] ,[Birthday] ,[Email] ,[MyTT] FROM [MySchool].[dbo].[Student] select * from dbo.Subject --查询oop课程 declare @sbjec int select @sbjec=SubjectId from dbo.Subject where SubjectName='oop' --最近一次考试时间 --select * from dbo.Result declare @datetime datetime select @datetime=MAX(ExamDate) from dbo.Result where SubjectId=@sbjec select * from dbo.Result where SubjectId=@sbjec and ExamDate=@datetime --投影出符合的人数 declare @sum int select @sum=COUNT(StudentNo) from dbo.Result where SubjectId=@sbjec and ExamDate=@datetime and StudentResult<60 while(@sum>0) --每人加两分 begin update dbo.Result set StudentResult=StudentResult+2 where SubjectId=@sbjec and ExamDate=@datetime and StudentResult<95 select @sum=COUNT(StudentNo) from dbo.Result where SubjectId=@sbjec and ExamDate=@datetime and StudentResult<70 end --1到100之间的偶数之和 --(第一种方法) declare @sun int set @sun=1 declare @num int set @num=0 while(@sun<=100)beginif(@sun%2=0)beginset@num=@num+@sunendset @sun=@sun+1 endprint @num--(第二种方法)declare @num1 intset @num1=0 declare @sum1 int set @sum1=2 while(@sum1<=100) beginif(@sum1%2=0)beginset@num1=@num1+@sum1endset @sum1=@sum1+1endprint @num1---------------***************------------------------------declare @row intset @row=1declare @i int set @i=1declare @chr nvarchar(32) set @chr='' while(@row<=5) begin while(@i<=@row) begin set @chr+='★' set @i+=1 end print @chr set @row+=1 end -------------(2)------------- declare @j int set @j=1 declare @xing nvarchar(32) set @xing='★' while( @j<=5) begin print @xing set @xing+='★' set @j+=1 end --------------------------CASE end---多分支语句--------------------------------查询oop课程 declare @sbjecc int select @sbjecc=SubjectId from dbo.Subject where SubjectName='oop' --最近一次考试时间 --select * from dbo.Result declare @datet datetime select @datet=MAX(ExamDate) from dbo.Result where SubjectId=@sbjecc select StudentName,等级= case when StudentResult>90 then 'A' when StudentResult>80 then 'B' when StudentResult>=70 then 'C' when StudentResult>60 then 'D' else 'E' end from dbo.Student S,dbo.Result F where S.StudentNo=F.StudentNo and ExamDate=@datet and SubjectId=@sbjecc --------------------------SQL语句面试题,关于group by------------------------------- create table tmp(rq varchar(10),shengfu nchar(1)) select * from tmp insert into tmp values('2005-05-09','胜') insert into tmp values('2005-05-09','胜') insert into tmp values('2005-05-09','负') insert into tmp values('2005-05-09','负') insert into tmp values('2005-05-10','胜') insert into tmp values('2005-05-10','负') insert into tmp values('2005-05-10','负') select rq as 时间 , sum( case when shengfu='胜' then 1 else 0 end) as 胜, sum( case when shengfu='负' then 1 else 0 end) as 负 from tmp group by rq
--课后简答
--九九乘法表
DECLARE @i intDECLARE @j intDECLARE @str varchar(110)SET @i=1WHILE @i<10 BEGIN SET @j=1 SET @str='' WHILE @j<=@i BEGIN SET @str= @str+CAST(@i AS varchar(1))+' x '+CAST(@j AS varchar(1))+'='+CAST(@i*@j AS varchar(2))+' ' SET @j=@j+1 END print @str SET @i=@i+1 END
--查询罚款
/*数据库表见:建库建表.sql*/Print '罚款记录表情况如下:'Select RID ,BID ,PDate,Amount, 罚款类型=case When PType=1 then '损坏' When Ptype=2 then '延期' When Ptype=3 then '丢失'End from Penalty
--借书记录
/*数据库表见:建库建表.sql*/declare @count intdeclare @TDay datetimeset @TDay=DateAdd(dd,1,getDate()) --获取明天的日期select @count=count(*) from Borrow where willDate<@TDayIF(@count=0) BEGIN print '明天没有应归还的图书' EndElseIF(@count<10)BEGIN Update Borrow set WillDate=DateAdd(dd,2,WillDate) WHERE willDate<@TDayENDElse BEGIN print '还书总数量:'SELECT book.BName, reader.RName, borrow.LendDate FROM Book as book,Reader as reader,Borrow as borrow WHERE book.BID=borrow.BID and reader.RID=borrow.RID and borrow.willDate<@TDayprint @countEnd
--查询图书总额
/*数据库表见:建库建表.sql*/DECLARE @count int,@totalMoney moneySELECT @count=sum(BCount) FROM bookSELECT @totalMoney=sum(BCount*Price) FROM bookprint '现存数量'+convert(varchar(10),@count)print '总金额'+convert(varchar(10),@totalMoney)IF @count<10000 print '现有图书不足一万本,还需要继续购置书籍' ELSE print '现有图书在一万本以上,需要管理员加强图书管理'
0 0
- 优化MySchool 第三章 SQL编程
- 优化MySchool SQL编程 第三章
- 优化MySchool 第三章作业
- 优化MYSCHOOL二学期第三章
- 优化MYSchool数据库设计第三章
- 优化MySchool数据库 第三章上机 简答
- MySchool第三章
- 优化myschool数据库设计 第三章 学习内容
- ACCPS2优化MYSCHOOL数据库设计第三章练习题
- 优化MySchool第九章
- 优化MySchool 第八章
- 优化MySchool 第八章
- 优化MySchool 第二章
- 优化myschool 第九章
- S2 优化MySchool第四章
- 优化MySchool第七章练习
- 优化MySchool第二章课后
- 优化MySchool 第六章 上机
- 类的赋值
- jsp中的搜索条件回显
- Java中方法多态以及多接口实现
- PHP 数据库mysql(一)
- vim查找或删除部分重复的行
- 优化MySchool SQL编程 第三章
- 拷贝构造函数、赋值运算符、构造函数的区别及关系?
- 使用xshell来操作服务器
- 在JS原型prototype中编写提取整数和移除字符串首尾空白的trim方法
- CentOS7 从零开始搭建 Hadoop2.7集群
- jQuery基础入门(一)
- 呃呃
- 214. Shortest Palindrome
- 深入理解C#:编程技巧总结(一)