优化MySchool 08客房系列
来源:互联网 发布:淘宝怎么看买家晒图 编辑:程序博客网 时间:2024/04/30 09:58
use hotelselect * from GuestRecord --客户记录表select * from dbo.ResideState --结账状态(是否结账)select * from dbo.Room --房间信息select * from RoomState --放间状态select * from RoomType --房间类型--分析表结构--阶段1:指导--统计某类型客房的入住客人人数--分析:根据用户传入的 [客房类型名称] ,获取该类型客房的 [客人总数 ]alter procedure usp_GetTotalNum @Typename nvarchar(32), @GuestNum int output --输出参数as select @GuestNum=COUNT(*) from GuestRecord where RoomID in ( select RoomID from Room where RoomTypeID in ( select TypeID from RoomType where TypeName=@Typename ) )--调用存储过程:declare @num intexec usp_GetTotalNum 'Single',@num outputprint 'total:'+convert(nvarchar(20),@num)--标准间--单人间--三人间--总统套房--长包房--豪华标准间--单人套房--双人套房select * from guestrecord--阶段2练习 --根据房间号查询客房信息--通过房间号查询客房的相关信息--如果房间号为-1,表示查询所有客房信息,包括客房ID,床位数,--客房状态ID,客房类型和房价。create procedure usp_RoomInfo @roomnum intas if(@roomnum=-1) begin --查询所有客房信息 select room.RoomID,Room.BedNum,Room.RoomStateID,TypeName,TypePricefrom room,roomtypewhere room.roomtypeid=Roomtype.TypeID endelsebeginselect room.RoomID,Room.BedNum,Room.RoomStateID,TypeName,TypePricefrom room,roomtypewhere room.roomtypeid=Roomtype.TypeIDand Room.RoomID=@roomnumend--调用exec usp_RoomInfo 1008--阶段3:删除某种客房类型记录--需求说明:根据客房类型删除客房类型记录,--如果操作成功(客房信息表Room没有--对应记录才可以删除),返回删除的记录数,否则返回-1select * from roomtypeselect * from roomcreate procedure usp_DelListByType @typeName nvarchar(20)as if not exists ( select RoomTypeId from room where roomtypeid in ( select typeid from roomtype where typename=@typename ) ) begindelete from roomtypewhere typeName=@typename return @@rowcountendelse ---房间表中有传入的房间类型记录return -1--调用declare @result intexec @result=usp_DelListByType '标准间'if(@result>0)print '删除了'+convert(nvarchar(20),@result)+'条记录'elseprint @result--阶段4:练习--插入入住客人记录 --需求说明:使用存储过程将入住客人信息插入客人信息表中, --检查身份证号必须是18个字符组成 --押金的默认值为1000元 --将客人入住房间的当前状态设置为"入住"的状态编号 --如果客人记录插入成功,输出客人流水号。 create Proc usp_insertGuestRecord @identityID nvarchar(20), @guestName nvarchar(20), @roomID int, @resideID int, @resideDate datetime, @leaveDate datetime, @Deposit decimal(18,2)=1000, @TotalMoney decimal(18,2), @guestID int outputas --检查身份证号 if(len(@identityID)!=18) begin print '身份证号只能是18位' return end --押金的默认值为1000元(在参数的时候已经设置) --插入记录 begin tran declare @ErrorSum int --定义保存错误总和的变量 insert into GuestRecord values(@identityID,@guestName,@roomID,@resideID, @resideDate,@leaveDate,@Deposit,@TotalMoney) set @ErrorSum=@ErrorSum+@@Error --将客人入住房间的当前状态设置为"入住"的状态编号 declare @roomStateID int select @roomStateID=RoomStateID from roomState where RoomStateName='已入住' update room set RoomStateID=@roomStateID where RoomID=@roomID set @ErrorSum=@ErrorSum+@@Error if(@ErrorSum>0) --insert或者是update这两个过程中至少有一个出现了错误!!! begin rollback tran end else begin commit tran set @guestID=@@Identity end --调用 declare @guestID int exec usp_insertGuestRecord '410523198806267523','李小龙',1008,1,'2013-3-11','2013-3-15',500,500,@guestID outputif(@guestID>0)begin print '操作成功,客户编号是'+convert(nvarchar(20),@guestID)endelse print '操作失败' use Myschool --分组总结 use MySchool select * from result order by StudentNo,StudentResult desc select StudentNo,max(StudentResult)from Resultgroup by StudentNo
0 1
- 优化MySchool 08客房系列
- 优化MySchool第九章
- 优化MySchool 第八章
- 优化MySchool 第八章
- 优化MYSCHOOL租房网
- 优化MySchool 第二章
- 优化myschool 第九章
- 优化MySchool总结习题
- 优化MySchool数据库设计
- 优化MySchool数据库设计第一章
- S2 优化MySchool数据库设计
- S2 优化MySchool第四章
- 优化MySchool第七章练习
- 优化MySchool第二章课后
- 优化MySchool 第三章作业
- 优化MySchool 第六章 上机
- 优化MySchool 第六章上机
- 优化MySchool 第六章作业
- MVC模式
- 设计模式学习
- ACCP7.0优化myschool数据库设计第八章项目
- 安卓使用MediaPlayer实现简易音乐播放器(应用内的音频文件)
- NG Cannot transition to abstract state
- 优化MySchool 08客房系列
- 1090. Highest Price in Supply Chain
- windows下安装elasticSearch5.X head插件
- Netty之Reactor线程1 -- NioEventLoopGroup(Reactor线程)
- 深度了解Android 7.0 ,你准备好了吗?
- angularjs
- Linux Ubuntu下安装多个版本JDK
- Python爬虫学习之Selenium详解
- java之IOC原理理解和框架实现