Mysql 计算损失的月收入
我有三张桌子:Mysql 计算损失的月收入,mysql,sql,Mysql,Sql,我有三张桌子: Hotel {hotelID, hotelName, city} Room {hotelID, roomNo, price, type} Booking {hotelID, roomNo, startDate, endDate} 我想找到当月的损失收入(即,计算当月每天的损失收入,然后计算总数) 我该怎么做呢 快速编辑:只需查找hotelName='Radisson'的收入即可。应该可以: SELECT COALESCE(SUM(r.price), 0) FROM R
Hotel {hotelID, hotelName, city}
Room {hotelID, roomNo, price, type}
Booking {hotelID, roomNo, startDate, endDate}
我想找到当月的损失收入(即,计算当月每天的损失收入,然后计算总数)
我该怎么做呢
快速编辑:只需查找hotelName='Radisson'的收入即可。应该可以:
SELECT COALESCE(SUM(r.price), 0)
FROM Room AS r INNER JOIN Booking AS b ON r.hotelID = b.hotelID AND r.roomNo = b.roomNo
INNER JOIN Hotel AS h ON r.hotelID = h.hotelID
WHERE (month(b.startDate) > month(current_date()) OR month(b.endDate) < month(current_date()))
AND h.hotelName = 'Radisson';
选择合并(总和(r.price),0)
从房间为r内部加入预订为b在r.hotelID=b.hotelID和r.roomNo=b.roomNo上
内联酒店作为h ON r.hotelID=h.hotelID
其中(月(b.开始日期)>月(当前日期())或月(b.结束日期)<月(当前日期())
h.hotelName='Radisson';
这是查询的开始。你们懒得把数据放出来,所以我懒得去查询mysql的形式
在查看每间客房的数据后,如果您愿意,您可以合并为一笔金额。这就是编写查询以确保每个步骤都正确的方法
select
ht.hotelid
,ht.hotelname
,ht.city
,rm.roomno
,rm.price
,rm.type
,30 as days -- use your datediff function for month instead of literal 30
,30 * rm.price as potential -- use your datediff function instead of literal 30
,sum(datediff(day, startdate, enddate)) * rm.price as earned
--, potential - earned as lost (use the 2 prior columns to calc)
from hotel ht
join room rm on ht.hotelid = rm.hotelid
left join booking bk on bk.hotelid = rm.hotelid
and bk.roomno =bk.roomno
“收入损失”是否意味着“如果所有预订的房间都被预订了,你本可以获得的金额”?你试过什么?如果你给出一些数据/结果的例子,那会更容易得到帮助。你试过什么?如前所述,发布一些测试数据。您可以使用提供所有这些信息。所有人都直接在这里发布一个包含示例数据的创建脚本。请解释更多关于本月收入损失的信息。提示:我们不会为您编写代码。提示2:提供代码。。。Hint3:如果出现SQL问题,请使用并正确设置它