课程实验1-2--答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:

使用SQL语句在上述数据库中创建客房标准信息表、订房信息表、客房信息表等,具体表结构如下:(注:要求表字段取英文名)

实验二:

在实验一基础上,用SQL语句完成以下任务:

1.查询有电话的客房类型,按客房类型降序排列;

Select *

From roomtype

Where htelephone=’有’

Order by typename DESC

2.查询所有客户的身份证号、客房号、入住日期、结算日期等信息Select guest_id, roomno, staydate, returndate

From bookin

Order by guest_id

3.查询没有被预定的客房编号;

Select roomno

Form rooms

Where putup=’否’

4.查询没有被预定并有电话的客房信息

Select *

Form rooms r, roomtype t

Where r.typeid=t.typeid and r.putup=’否’ and t.htelephone=’有’

5.查询客房编号和客房类型(用typename表示)

Select roomno, typename

From rooms r, roomtype t

Where r.typeid=t.typeid

6.查询每一种客房类型的总床位数

Select typename, count(roomno)* max(bednum)

From rooms r, roomtype t

Where r.typeid=t.typeid

Group by r.typeid typename

7.查询每一种客房类型的可用床位数

Select typename, count(roomno)* max(bednum)

From rooms r, roomtype t

Where r.typeid=t.typeid and putup=’否’ and (roomno in (select roomno from bookin group by roomno having max(returndate)> max(staydate)))

Group by r.typeid typename

8.查询最近一年客房消费金额最高的客户

Select Top 1 sum(ammount), guest_id

From bookin

Where datediff(yy, getdate(),returndate)<1

Group by guest_id

Order by sum(ammount)

9.查询身份证号为“310222************”的客户最近入住酒店的日期以及客房号,入住

天数信息

Select staydate, roomno, datediff(dd, returndate, staydate)

Form bookin

Where guest_id =’310222************’ and staydate=(select max(staydate) from bookin where guest_id =’310222************’)

10.查询价格高于所有五楼(5**)房间的客房位置

Select roomposition

From rooms

Where rooms.price>(select max(price) from rooms where roomposition like ‘5%’)

11.身份证号为“310222************”的客户离店结算房价应作何SQL操作

Update booking

Set returndate=getdate(), discount=1, amount=datediff(day, getdate(), staydate())*1*roomprice From rooms

Where guest_id=’310222************’and rooms.roomno=booking.roomno and returndate is null

注:staydate()按中午12时计

12.把身份证号为“310222************”的客户住过的所有客房类型加价10%

Update rooms

Set roomprice= roomprice*1.1

Where roomno in (select roomno from bookin where guest_id=’310222************’)

相关文档
最新文档