我需要根据缺勤情况创建报告,目前数据存储在具有以下结构的表中:
Date | Name1 | Name2 | Name3 | Name4 | Name5
每次员工离职时,员工ID都会被添加到他们离开日期旁边的一列中。我正在努力找出使用数据的正确方法。
理想情况下,我希望实现的是扭转数据的方式,以便员工ID具有关闭的日期,如果5个人关闭,则每个日期不会有5列。例如:
EmpName | Date
JWC | 22/03/2013
JWC | 23/03/2013
从来没有做过与此类似的事情,所以有点迷失。在这种情况下,枢轴会有帮助吗?
答案 0 :(得分:1)
使用UNPIVOT:
SELECT
empl
, dt
FROM
(
SELECT
dt,
id1,
id2,
id3
FROM
data
) d
UNPIVOT
(
empl FOR epl IN ( id1, id2, id3 )
) u
ORDER BY
empl,
dt
请参阅SQL-Fiddle
答案 1 :(得分:0)
试图大规模复杂化,简单地做了几个工会来整理它们并把它们放到不同的表格中。可能不是最佳分辨率,但效果很好。