首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何按天将一个日期列透视为多个列?

如何按天将一个日期列透视为多个列?
EN

Stack Overflow用户
提问于 2019-05-23 04:45:51
回答 1查看 198关注 0票数 0

下面的表格显示了员工每天在分配的工作中工作的小时数。

   emp_num   |  job   |      initial_date     |  worked_hours
  ----------  --------  ---------------------  -------------
    100001     VESS_10   2019-01-01 06:00:00         2
    100001     VESS_20   2019-01-01 08:00:00         1 
    100001     VESS_30   2019-01-02 06:00:00         1
    100002     VESS_20   2019-01-02 08:00:00         2 
    100002     VESS_20   2019-01-03 10:00:00         2
    100003     VESS_30   2019-01-01 11:00:00         1

我想显示以下结果:

   emp_num   |  job   |      2019-01-01    |    2019-01-02      |    2019-01-03   |  worked_hours
  ----------  --------  -------------------   ---------------   ------------------  ------------
    100001     VESS_10   2019-01-01 06:00:00     NULL                  NULL             2
    100001     VESS_20   2019-01-01 08:00:00     NULL                  NULL             1
    100001     VESS_30          NULL          2019-01-02 06:00:00      NULL             1
    100002     VESS_20          NULL          2019-01-02 08:00:00      NULL             2
    100002     VESS_20          NULL             NULL              2019-01-03 10:00:00  2
    100003     VESS_30   2019-01-01 11:00:00     NULL                  NULL             1

我尝试使用以下查询来透视该表:

select * from 
    (
     select emp_num, job, initial_date worked_hours
     from transactions
     where initial_date between '2019-04-21 00:00:00' and '2019-04-27 23:59:59'
)
as hours_table
pivot (
    sum(worked_hours)
    for initial_date in (['my problem comes here'])])
)

上面代码的问题是,在for语句中,我想在7列中声明日期,因为它们表示一周中的每一天,但是,我不知道如何根据日期对每一行进行分类,然后将其分配到正确的列中。

任何帮助,评论或建议都是非常感谢的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56264774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档