数据库查询题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现有3张数据表如下:
项目表:记录项目基本信息。
房间表:记录房间基本信息,一个项目有多个房间,一个房间只属于一个项目。收款表:一个房间会有多笔款项类型、款项名称不一样的收款,一笔收款信息只属于一个房间。
表关系图如下:
项目表:s_project
房间表:s_room
根据提供的信息,完成如下题目(每题10分):
1)写出项目表的创建语句(不考虑外键约束)
2)以标准总价升序s_room Total、签署日期降序Qsdate显示房间表中的记录
3)用一个SQL统计每一个项目款项类型为非贷款类房款的收款金额合计
(s_getin.itemtype=’非贷款类房款’)、款项类型为贷款类房款((s_getin.itemtype=’贷款类房款’))的收款金额合计
个房间的收款合计(s_getin之和),显示公司名称、父级项目名称、项目名称、房间代码、房号、建筑面积、标准单价、标准总价、签署日期、成交单价、成交总价、销售状态,收款金额合计
说明:项目开盘当日:项目表(s_project)开盘日期
成交的房间:房间表(s_room)销售状态为签约
5)查询所有销售状态为‘签约’的房间收款金额合计不等于成交总价的记录,
并计算出差额(s_getin.amout之和<>s_room.cjtotal)
6)更新所有已经收取银行按揭金额房间(存在s_getin.itemname=‘银行按揭’
的房间)的按揭放款日期(s_room.ajfkdate)为该房间银行按揭收款的收款日期(s_getin.getdate)
7)基于项目、房间、收款表,创建一张视图,包含字段有,公司名称、父级项
目名称、项目代码、项目名称、开盘日期、房间代码、房号、建筑面积、标准单价、标准总价、成交单价、签署日期、成交总价、收款金额合计。
8)查询各项目的房间的成交总价(s_room.cjtotal)在该项目降序排序为第6到
第10的房间的项目名称、房间代码、累计收款金额 (s_getin.amount之和) 9)基于收款表创建insert触发器,在收取银行按揭款(款项名称为‘银行按揭’)
后,根据收款日期自动更新房间表按揭放款日期
10)创建一个表函数 fn_test(y int,m int)
参数定义:y 为年份,m 为月份
返回值定义:return {项目名称 varchar(100),上旬销售套数 int,中旬销
要求输入年份和月份,输出每个项目该月份在上旬、中旬、下旬分别销售的套数。
时间维度定义:每月1日-10日为上旬,11日-20日为中旬,21日到月末为下旬。select*from s_room
--第二题
select*from dbo.s_room orderby total asc,qsdate desc
--第三题
select p.projname as项目名称,
sum(case g.itemtype when'贷款类房款'then g.amount else 0 end)as贷款类房款, sum(case g.itemtype when'非贷款类房款'then g.amount else 0 end)as非贷款类
房款
from s_geting,s_roomr,s_projectp
where g.roomguid=r.roomguid and r.projguid=p.projguid groupby p.projname
--第四题
select
pany as公司名称,
pb.projname as父级项目名称,
pa.projname as项目名称,
r.roomcode as房间代码,
r.roomno as房号,
r.bldarea as建筑面积,
r.price as标准单价,
r.total as标准总价,
r.qsdate as签署日期,
r.cjprice as成交单价,
r.cjtotal成交总价,
r.statusas销售状态,
SUM(g.amount)as收款金额合计
from s_projectpa,s_projectpb,s_roomr,s_geting
where pa.parentprojcode=pb.projcode
and pa.projguid=r.projguid
and r.roomguid=g.roomguid
and pa.kpdate=r.qsdate
and r.status='签约'
groupby pany,pb.projname,pa.projname,r.roomcode,r.roomno,r.bldarea,r. price,r.total,r.qsdate,r.cjprice,r.cjtotal,r.status
--第五题
select
r.roomno as房号,
r.cjtotal-sum(g.amount)as差额
from s_roomr,s_geting
where r.roomguid=g.roomguid
and r.status='签约'
groupby r.roomno,r.cjtotal
having r.cjtotal<>sum(g.amount)
--第六题
update s_room
set ajfkdate=(selecttop 1
getdate from s_geting where g.roomguid=s_room.roomguid and g.itemname='银行按揭')
update s_room
set ajfkdate=(selecttop 1
g.getdate from s_geting where g.roomguid=s_room.roomguid and g.itemname='银行按揭')
where exists(select 1 from s_geting where g.itemname='银行按揭
'and s_room.roomguid=g.roomguid)
--第七题
createview ProjectView