首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为票证生成每天的待办事项

如何为票证生成每天的待办事项
EN

Stack Overflow用户
提问于 2015-09-28 07:22:48
回答 2查看 143关注 0票数 0

嗨,我正在努力创建一个程序来计算每天的待办事项。

例如:我在一张桌子上有一张ticket_submitdateresolved_date的票,分别是2015年9月12日和2015年9月15日。此票据应该作为backlog_table中的待办事项处理,因为它没有在与ticket_submitdate相同的一天被解析。

我在backlog_table中有另一列date_col,其中显示了票证的待办日期,即,它应该在ticket_backlog表中,日期分别是13-9月-2015年和14-9月-2015年,而date_col列应该有这两个日期的票。

请帮帮忙。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-28 08:12:06

以下是一些测试数据:

代码语言:javascript
复制
create table backlog (ticket_no number, submit_date date, resolved_date date);

insert into backlog values (100, date '2015-09-12', date '2015-09-15');
insert into backlog values (200, date '2015-09-12', date '2015-09-14');
insert into backlog values (300, date '2015-09-13', date '2015-09-15');
insert into backlog values (400, date '2015-09-13', date '2015-09-16');
insert into backlog values (500, date '2015-09-13', date '2015-09-13');

此查询生成跨越待办事项记录范围的日期列表,并将其连接到待办事项处理中。

代码语言:javascript
复制
with dt as ( select min(submit_date) as st_dt
                   , greatest(max(resolved_date), max(submit_date)) as end_dt
            from backlog)
    , dt_range as ( select st_dt + (level-1) as date_col
                    from dt
                    connect by level <= ( end_dt - st_dt ))
select b.ticket_no
       , d.date_col
from backlog b
     cross join dt_range d
where d.date_col between b.submit_date and b.resolved_date
and b.submit_date != b.resolved_date
order by b.ticket_no
       , d.date_col
/

因此,它生成一个包含所有日期的TICKET_NOs列表:

代码语言:javascript
复制
 TICKET_NO DATE_COL
---------- ---------
       100 12-SEP-15
       100 13-SEP-15
       100 14-SEP-15
       100 15-SEP-15
       200 12-SEP-15
       200 13-SEP-15
       200 14-SEP-15
       300 13-SEP-15
       300 14-SEP-15
       300 15-SEP-15
       400 13-SEP-15
       400 14-SEP-15
       400 15-SEP-15

14 rows selected.

SQL> 

结果集不包括票证#500,因为它是在提交之日解决的。您可能需要调整过滤器以适应实际的业务规则。

票数 0
EN

Stack Overflow用户

发布于 2015-09-28 07:46:51

我不确定我是否理解您的问题,如果您正在查找两个日期范围之间的所有日期,那么您可以使用以下查询-

代码语言:javascript
复制
select trunc(date_col2+lv) from
  (select level lv from dual connect by level < (date_col1-date_col2-1) )
order by 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32817644

复制
相关文章

相似问题

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