2017-05-30 83 views
1

對於一個小項目(愛好目的)我正在構建一個C#應用程序,其後面有一個SQL數據庫。總和函數的查詢

但是我試圖用一個sum函數來構建一個查詢,該函數可以計算來自不同表格的值。

下面是相關的表和樣本數據

酒店表

Id, Name   Adress    Zipcode  Phone 
1 Ankunding Group 90 Shelley Terrace 649-6326 86-(672)239-5855 
2 Gerlach-Gutmann 50776 Bartillon Road 27109 CEDEX 33-(412)226-8055 
3 Breitenberg-Smith 3289 Talisman Avenue 59762 86-(141)636-8780 
4 Smitham-Marks 5 Veith Plaza 216282 7-(400)484-7233 
5 Beatty LLC 3 Center Pass 940028 212-(310)974-4364 

預約表

id, customerid,  Startdate Enddate  Amount of persons 
1 163    2016-06-19 2017-04-30 4 
2 172    2016-12-02 2016-08-18 5 
3 162    2017-01-20 2017-04-08 3 
4 66    2017-04-06 2017-01-07 2 
5 104    2017-05-07 2016-09-10 2 

RoomReservation表

Roomid, reservationid 
3  53 
3  198 
4  178 
5  172 
5  218 

間表

id, hotelid, Roomnumber, price 
1 1   1.01  268.83 
2 1   1.02  201.28 
3 1   1.03  126.64 
4 1   1.04  122.56 
5 1   1.05  217.41 

現在我想做一個查詢,這給我的概況關元酒店收入。因此,對於每家酒店我希望獲得預訂,併爲酒店中每間客房的人數*房間價格。

我試過不同的事情沒有成功,我讀了一些我需要使用子查詢的地方,但我不知道如何。

我希望它看起來像;

Hotelname1; income 
Hotelname2; income 
Hotelname3; income 
Hotelname4; income 
Hotelname4; income 
+0

你可以張貼一些樣本數據。和你的預期產出。所以每個人都可以輕鬆支持,我的朋友。 – Tomato32

+0

您正在使用哪個[DBMS](https://en.wikipedia.org/wiki/DBMS)? Postgres的?甲骨文? 「SQL」是一種查詢語言,而不是數據庫產品。每個關係數據庫都是「SQL數據庫」 –

回答

0

爲什麼你就不能做到這一點:

SELECT 
    Hotel.Name, 
    SUM(Room.Price*Reservation.Amountofpersons) 
FROM 
    Hotel 
    JOIN Room 
     ON Hotel.HotelId=Room.HotelId 
    JOIN RoomReservation 
     ON Room.RoomId=RoomReservation.RoomId 
    JOIN Reservation 
     ON RoomReservation.ReservationId=Reservation.ReservationId 
GROUP BY 
    Hotel.Name 
+0

這很好,謝謝分配! – glnxhjeh

+0

@glnxhjeh:Np。樂意效勞 – Arion

0

,您可以嘗試白衣此查詢:

select hotel.name,sum(reservation.amount*room.price) 
from hotel_table as hotel 
inner join room_table as room on (hotel.hotelid=room.hotelid) 
inner join roomreservation_table as room_reservation on (room.roomid=room_reservation.roomId) 
inner join reservation_table as reservation on (room.reservationId=reservation.reservationid) 
group by hotel.hotelid