查询sum函数

时间:2017-05-30 06:44:16

标签: sql

对于一个小项目(业余爱好)我正在构建一个带有SQL数据库的C#应用​​程序。

但是我正在尝试使用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

2 个答案:

答案 0 :(得分: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  

答案 1 :(得分: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