oracle多表联合视图创建,使用多个表中的总和创建视图(Oracle SQL)

作者寻求帮助解决如何通过视图从多个Oracle SQL表中计算访问者的总房费(房间价格乘以预订天数)和所有相关服务成本,包括未在booking_services中直接关联的。查询已提供,但结果仅包含部分信息。
摘要由CSDN通过智能技术生成

我试图创建一个视图来获取各种表中几个不同行的总和。 (我不知道怎么解释这个正确)使用多个表中的总和创建视图(Oracle SQL)

这里是我的表是如何设置的:

访问者:

VISITORID FNAME LNAME PHONE HOTELID

---------- --------------- --------------- --------------- ----------

23 Bella Morgan 0394110625 3

预订:

BOOKINGID HOTELID ROOMNO BOOKINGDATE BOOKINGDAYS BEDANDBREA VISITORID

---------- ---------- ---------- ------------------- ----------- ---------- ----------

28 3 509 28-04-2013 00:00:00 3 Yes 23

客房:

ROOMNO HOTELID ROOMTYPE PRICE

---------- ---------- ------------------------- ----------

509 3 Double 700

Se rvices:

SERVICEID SERVICENAME COST HOTELID

---------- -------------------------------------------------- ---------- ----------

1-CLTH Cloth Cleaning 14.95 1

2-RMSV Room Service 9.95 2

Booking_services:

SERVICEID BOOKINGID

---------- ----------

2-RMSV 32

1-CLTH 32

我想创建一个名为票据观点,让我总房费和所有服务的成本。

要得到房间价格,总和是rooms.price * bookings.bookingdays。 对于服务,它是services表中与booking_services中的SERVICEID匹配的所有行的总和,用于匹配的预订标识号。

当前所有表格中的行数比我所显示的多(所以它不占用太多空间),并且我有一个查询但它只显示2个访问者就像总数一样。我知道这是因为第5行,但我不确定我如何计算以及那些在booking_services中没有排名的人。

下面是查询:

CREATE VIEW bills AS

SELECT v.fname, SUM((r.price*b.bookingdays)+s.cost) AS total

FROM visitors v, rooms r, bookings b, services s, booking_services bs

WHERE v.visitorid = b.visitorid

AND

s.serviceid in(select bs.serviceid from booking_services where bs.bookingid = b.bookingid)

AND

b.roomno = r.roomno

GROUP BY v.fname;

任何帮助得到我之后,我(如果这让任何意义),将不胜感激。

2013-09-30

r_t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值