0
我試圖創建一個視圖來獲取各種表中幾個不同行的總和。 (我不知道怎麼解釋這個正確)使用多個表中的總和創建視圖(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;
任何幫助得到我之後,我(如果這讓任何意義),將不勝感激。
優秀。這工作完美。非常感謝你。 –