sql - SQL - 在每条记录的两个日期之间列出
问题描述
我的数据源如下所示。
我想要像下面这样的输出。
基本上,它应该在这些时期之间的每个日期多次列出每个员工。
为了快速简便,下面是临时数据代码。
DROP TABLE IF EXISTS #Emp
CREATE TABLE #Emp
(
EmpID VARCHAR(6),
StartDate DATE,
EndDate DATE
)
INSERT INTO #Emp
VALUES ('E001','2021-08-01', '2021-08-05'),
('E002','2021-08-22', '2021-08-22'),
('E003','2021-08-15', '2021-08-17')
解决方案
建立一个日历表并加入它。
Select e.EmpId, c.Date
from #Emp e
join Calendar c
on c.Date between e.StartDate and e.EndDate
推荐阅读
- swift - 在 Interface Builder 中适当地设置工具栏按钮的宽度
- javascript - React 17:如何在 Router标签中传递事件处理程序
- c# - 在 SQL 中实现 foreach 逻辑
- docker - docker:来自守护进程的错误响应:端口不可用:listen tcp 0.0.0.0:50075
- python - Mediapipe 构建失败(没有名为“numpy”的模块)
- php - 如何使用来自 vue-cli 的 php 文件?
- android - 新闻应用只加载第一个故事,无论你点击哪个
- html - 当方向为列时,Flex 收缩无法按预期工作
- javascript - 使用 JavaScript 和 jQuery 创建多个 div 并在每个 div 上分配一个名称
- android - 充气时抽屉布局崩溃