首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当只给出(星期六)的日期时,如何插入未来6天(星期日至星期五)的记录

当只给出(星期六)的日期时,如何插入未来6天(星期日至星期五)的记录
EN

Stack Overflow用户
提问于 2019-03-29 09:52:25
回答 2查看 34关注 0票数 0

我有一周1天的卡车能力,同样的卡车将在整个星期内使用,所以我想填充每天的能力值。例如,我想通过在SQL查询中填充相同的容量值来将每周数据转换为每日数据

以下是数据示例

代码语言:javascript
复制
Date                 capacity
6-Jan-2018      5.58
13-Jan-2018     4.6

预期结果:

代码语言:javascript
复制
Date                capacity
 6-Jan-2018    5.58
 7-Jan-2018    5.58
 8-Jan-2018    5.58
 9-Jan-2018    5.58
 10-Jan-2018   5.58
 11-Jan-2018   5.58
 12-Jan-2018   5.58
13-Jan-2018    4.6
14-Jan-2018    4.6
15-Jan-2018    4.6
16-Jan-2018    4.6
17-Jan-2018    4.6
18-Jan-2018    4.6
19-Jan-2018    4.6
EN

回答 2

Stack Overflow用户

发布于 2019-03-29 10:52:50

使用以下要点(理解)为您提供解决方案。

  1. 来自您的标签' Oracle ',我假设您需要Oracle database

的解决方案,您的描述我有一周中1天的卡车容量和示例建议您在第一天就知道容量,这将是所有7天(当前+未来6天)的容量

代码语言:javascript
复制
WITH VW_DWC AS (SELECT LEVEL-1 DAY_COUNT FROM DUAL CONNECT BY LEVEL <= 7)
SELECT DT.DT_START + V.DAY_COUNT ON_DATE, DT.CAPACITY
FROM VW_DWC V CROSS JOIN ( 
  -- you can provide all your date, capacity pairs here as union all   
  SELECT to_date('06-Jan-2018', 'DD-MON-YYYY') DT_START, 5.58 AS CAPACITY from dual
  UNION ALL
  SELECT to_date('13-Jan-2018', 'DD-MON-YYYY') DT_START, 4.6 AS CAPACITY from dual
) DT
ORDER BY ON_DATE

结果呢?

票数 1
EN

Stack Overflow用户

发布于 2019-03-29 11:15:08

我假设您有一个列来表示每周开始的每个日期的周号。让我们称它为week_no。然后,您可以使用带有标准prior sys_guid选项的简单connect by查询(以防止循环)

代码语言:javascript
复制
select t.dt+ level-1 as dt, t.capacity 
  from t connect by level <= 7
    and prior week_no = week_no
and prior sys_guid() is not null;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55409430

复制
相关文章

相似问题

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