【问题标题】:Query with sum functions使用求和函数查询
【发布时间】:2017-05-30 06:44:16
【问题描述】:

为了一个小项目(业余爱好),我正在构建一个 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

客房预订表

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

【问题讨论】:

  • 您可以发布一些示例数据。以及您的预期输出。所以大家可以轻松支持,我的朋友。
  • 您使用的是哪个DBMS?后格雷斯?甲骨文? “SQL”是一种查询语言,而不是数据库产品。每个关系数据库都是一个“SQL 数据库”

标签: sql


【解决方案1】:

你为什么不能这样做:

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

【讨论】:

  • @glnxhjeh:Np。很高兴为您提供帮助
【解决方案2】:

你可以试试这个查询:

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  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    相关资源
    最近更新 更多