gpt4 book ai didi

sql - 我需要几个 DATEDIFF 查询

转载 作者:行者123 更新时间:2023-12-02 03:41:11 26 4
gpt4 key购买 nike

1.) 列出目前收到的每家酒店的收入,即 DepartureDate < NOW()。计算必须在 SQL 语句中完成。使用 DateDiff 函数确定每次预订的长度(即天数),并将此值乘以房价(不是折扣价)。在输出中包含酒店编号。

到目前为止,我已经试过了,但它不对,给我 DateDiff 语句的聚合函数错误

SELECT ROOM.HotelNo, DateDiff("d", [ArrivalDate], [DepartureDate]) *  ROOM_TYPE.RoomRate AS TotalRevenue
FROM RESERVATION, ROOM_TYPE, ROOM
WHERE ROOM.RoomType = ROOM_TYPE.RoomType
AND RESERVATION.RoomNo = ROOM.RoomNo
AND DepartureDate > Now()
GROUP BY ROOM.HotelNo;

这是你可以看到表格的链接

RelationShip Table <-- 链接

请帮我解决这个问题

最佳答案

使用 Sum()DateDiff()表达式以避免 “不包括指定的表达式......作为聚合函数的一部分” 投诉。

SELECT
ROOM.HotelNo,
Sum(
DateDiff(
"d",
[ArrivalDate],
[DepartureDate]
) * ROOM_TYPE.RoomRate
) AS TotalRevenue

WHERE子句包括 DepartureDate > Now() ,我怀疑将结果过滤到尚未离开的结果。我想你想要<而不是 >那里。

考虑使用 INNER JOIN而不是使用 WHERE子句指定如何匹配表中的行。如果您可以从 Access 查询设计器的设计 View 构建此查询,则设置联接将很容易。并且查询设计者知道在连接 2 个以上的表时需要括号的规则......因此将生成使数据库引擎满意的 SQL。

关于sql - 我需要几个 DATEDIFF 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com