我正在尝试编写一个查询来非规范化一些数据以集成到我们的数据仓库,特别是围绕生成一些时隙。
在我的源系统中,我有一个表,它有一个开始时间和结束时间,然后是一个指定每 15 分钟间隔有多少预约空档可用的列。
例子:
Location | Start Time | End Time | Appointment Slots
A | 9:00 am | 5:00 pm | 2
B | 9:00 am | 5:00 pm | 1
我已经能够使用 CTE 生成 15 分钟块的列表。但是,每个 15 分钟的插槽只是说位置 A 有 2 个插槽,位置 B 有 1 个插槽。我想要的是能够为位置 A 每 15 分钟生成 2 行,每 15 分钟生成 1 行对于位置 B。
这是一个“数字”表变得非常方便的例子!如果您不熟悉这个概念,请阅读 Adam Machanic 的这篇博文:您需要一个数字表
numbers 表用于连接到 Appointment Slots 列(在本例中)以复制每一行AppointmentSlots次数。
查询输出:
PS:生成数字表的方法有很多:SO:创建和填充数字表的最佳方法是什么?