【发布时间】:2018-04-30 20:59:44
【问题描述】:
我有一个包含员工“打卡”(打卡/打卡)的表格,每个打卡可以是“打卡”(打卡类型=1)或“打卡”(打卡类型=2)。
表格格式如下:
emp_num | report_date | punch_time | punch_type
-----------------------------------------------------------
1 | 2018-04-20 |2018-04-20 04:46:00.000 | 1
1 | 2018-04-20 |2018-04-20 06:58:00.000 | 2
1 | 2018-04-20 |2018-04-20 08:10:00.000 | 1
1 | 2018-04-20 |2018-04-20 12:00:00.000 | 2
我试图在同一行中获得第一个“打卡”(打卡)和下一个“打卡”(打卡)。那么,当然,任何后续都是一样的。
期望的输出:
emp_num | report_date | punch_in | punch_out
-----------------------------------------------------------
1 | 2018-04-20 |2018-04-20 04:46:00.000 | 2018-04-20 06:58:00.000
1 | 2018-04-20 |2018-04-20 08:10:00.000 | 2018-04-20 12:00:00.000
请记住,如示例所示,一天内可能会有多个打入/打出组合。
任何帮助将不胜感激!
【问题讨论】:
-
这和
PIVOT有什么关系? -
到目前为止你尝试了什么?
-
我在想我可能需要对数据进行透视才能实现“打孔列”
-
打入和打出是
punch types被case statement炸开,所以如果您向我们展示您的尝试,我们可以为您提供帮助.. 说实话并不难 -
抱歉,起初误解了您的问题 - 我的回答应该适合您,请看一下
标签: sql sql-server pivot case