求一个房间租赁空置天数问题

低代码开发平台 2023-11-20 11:31:25

表结构如下,房间资料(ID主键,number代码,name名称),租赁合同表(id,房间id,租赁开始日期startdate,租赁结束日期enddate),一个房间可能有多个合同,对应不同起始日期,求每个房间在某个查询时间内的空置天数!

...全文
86 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 11-20
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/8032179, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
  • 打赏
  • 举报
回复

SELECT
r.ID AS RoomID,
r.number AS RoomNumber,
r.name AS RoomName,
(SELECT COUNT(DISTINCT date_range.date)
FROM generate_series('2023-01-01'::date, '2023-12-31'::date, '1 day'::interval) date_range(date)
LEFT JOIN lease_contract lc ON r.ID = lc.room_id
WHERE lc.startdate <= date_range.date AND lc.enddate >= date_range.date
AND date_range.date BETWEEN '2023-01-01' AND '2023-12-31') AS VacantDays
FROM room_data r;
generate_series 是一个用于生成日期范围的函数。
LEFT JOIN 用于获取每个房间的租赁情况。
COUNT(DISTINCT date_range.date) 用于计算在查询时间范围内未被租赁的日期数量。
替换 '2023-01-01' 和 '2023-12-31' 为您实际的查询时间范围。

172,027

社区成员

发帖
与我相关
我的任务
社区描述
一个人可以走的很快,一群人才能走的更远!
数据库 企业社区
社区管理员
  • Lucifer三思而后行
  • 韬光养晦208
  • 芒果再努力
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

❤️ 添加版主微信:Lucifer-4622 

🎉【数据库交流社区】联合 【摸鱼社区】本周重磅推出【兄弟社区每日打卡】活动 

🎁 新玩法,奖励升级!

数据库交流社区:https://bbs.csdn.net/forums/lucifer-database

摸鱼社区:https://bbs.csdn.net/forums/moyu

新增抽奖池:6本技术书籍 📚 + 每周社区排名奖品 🏅 ,绝对丰厚!

奖品预览可以参考:CSDN社区赞助奖品一览

⭐️ 活动要求:

1、每日 同时在两个社区 打卡贴进行发帖打卡,提交任务

2、同时在两个社区 坚持 7 天打卡 ,将参与到抽奖名单中,这很重要!

3、参加抽奖请先 添加打卡抽奖群,否则无效,加群请添加微信:Lucifer-4622

【社区积分规则】

  • 在社区「发帖」得10积分
  • 内容被管理员「加精」得10积分
  • 点赞他人内容得1积分
  • 评论内容得2积分

社区玩法👇👇👇

试试用AI创作助手写篇文章吧