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

从日期范围内的表中选择所有日期,每个空日期包括1行

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

从日期范围内的表中选择所有日期,每个空日期包括1行

有几种处理缺失行的方法,但是所有方法都是关于将另一组数据与您的当前结果结合在一起的。

这可以从您的结果中得出,可以是CTE或其他过程(例如您的示例)创建的结果,也可以是(使用我的偏好)通过使用永久 模板 进行加入而得出的结果。

您的情况下的模板可能只是一个日期表,例如您的@datesTBL。区别在于它是预先创建的,例如,具有100年的日期。

您的查询可能类似于您的示例,但是我会尝试以下操作…

SELECt     dt.tempDate ,    InstructorID,EventStart,     EventEnd,    cancelled,     cancelledInstructor,     EventType,   DevName,     Room,        SimLocation,     ClassLocation,          Event,     Duration,    TrainingDesc,     Crew,        Notes,     LastAmended, InstLastAmended,     ChangeAcknowledged,     Type,     OtherType,   OtherTypeDesc,     CourseType FROM   @datesTBL dt LEFT OUTER JOIN  OpsInstructorEventsView iv    ON  iv.EventStart >= dt.tempDate    AND iv.EventStart <  dt.tempDate + 1    AND iv.InstructorID = @InstructorID WHERe      dt.tempDate >= @StartDate  AND dt.tempDate <= @EndDateORDER BY  dt.tempDate,  iv.EventStart

这将 日历模板 放在左侧,因此您可以轻松地进行许多查询,因为您知道日历的日期字段总是填充,始终是仅日期(无时间部分)值,有序,对于GROUP
BY很简单,等等。



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

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

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