栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL计划-选择给定日期范围内所有可用的房间

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL计划-选择给定日期范围内所有可用的房间

您希望所有在该日期范围内没有预订的房间,即,如果您的sql引擎执行子查询…

Select * From Rooms r where not exists      (Select * From Bookings       Where room = r.room         And startBooking < @endRange         And endBooking > @startRange)

HIK,要了解对room = r.room子句的需求,请尝试以下两个查询

查询一(用room = r.room子句)

       Select r.*,       Case Where Exists(Select * From Bookings  Where room = r.room      And startBooking < @endRange      And endBooking > @startRange)         Then 'Y' Else 'N' End HasBooking    From Rooms r

查询二(不包含room = r.room子句)

    Select r.*,       Case Where Exists(Select * From Bookings  Where startBooking < @endRange      And endBooking > @startRange)         Then 'Y' Else 'N' End HasBooking    From Rooms r

请注意,第一个为输出的每一行在HasBooking中返回不同的值,因为子查询与外部查询“关联” …它在agaio上反复运行,对于每个外部查询结果行一次。

第二个对于所有行都是相同的值…它仅执行一次,因为其中的任何内容都不取决于为其生成外部查询的哪一行。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431730.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号