已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
昨天关门了。
Improve this question
我有下表
| 星期一|星期二|星期三|星期四|星期五|周开始|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 八个|八个|八个|八个|八个|2019-09-06 2019-09-06|
我想把它转换成下面的表格
| 星期|实际小时数|周开始|时间卡日期|
| --------------|--------------|--------------|--------------|
| 星期一|八个|2019-09-06 2019-09-06|2019-09-07 2019-09-07|
| 星期二|八个|2019-09-06 2019-09-06|2019-09-08|
| 星期三|八个|2019-09-06 2019-09-06|2019-09- 09 2019-09-09|
| 星期四|八个|2019-09-06 2019-09-06|2019-09-10 2019-09-10|
| 星期五|八个|2019-09-06 2019-09-06|2019-09-11 2019-09-11|
添加TimecardDate的逻辑用于Monday--〉WeekstartsOn+1,Tuesday--〉WeekstartsOn+2。...,星期五--〉WeekstartsOn+5
我已经试过下面的查询
SELECT ActualHrs,DayOftheWeek,WeekStartsOn
FROM (select Monday,Tuesday,Wednesday,Thursday,Friday,WeekStartsOn
from itplanning.enriched.timecard_enriched_current) as cp
UNPIVOT
(
ActualHrs FOR DayOftheWeek IN (Monday,Tuesday,Wednesday,Thursday,Friday )
)
AS PivotTable
where ActualHrs<>0
通过上面的查询,我得到了下面的表
| 星期|实际小时数|周开始|
| --------------|--------------|--------------|
| 星期一|八个|2019-09-06 2019-09-06|
| 星期二|八个|2019-09-06 2019-09-06|
| 星期三|八个|2019-09-06 2019-09-06|
| 星期四|八个|2019-09-06 2019-09-06|
| 星期五|八个|2019-09-06 2019-09-06|
无法做TimecardDate列。
实际表如下
| 星期一|星期二|星期三|星期四|星期五|周开始|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 八个|八个|八个|八个|八个|2019-09-06 2019-09-06|
预期表如下
| 星期|实际小时数|周开始|时间卡日期|
| --------------|--------------|--------------|--------------|
| 星期一|八个|2019-09-06 2019-09-06|2019-09-07 2019-09-07|
| 星期二|八个|2019-09-06 2019-09-06|2019-09-08|
| 星期三|八个|2019-09-06 2019-09-06|2019-09- 09 2019-09-09|
| 星期四|八个|2019-09-06 2019-09-06|2019-09-10 2019-09-10|
| 星期五|八个|2019-09-06 2019-09-06|2019-09-11 2019-09-11|
1条答案
按热度按时间ogsagwnx1#
你可以这样做:
我手动取消透视,并创建了一个包含周和要添加到周开始的天数的两列表
编辑:添加了一个替代方案,它与pivot语法
编辑#3(SQLite版本):