2017-05-30 54 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