微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

培训计划至年底

如何解决培训计划至年底

我有一个训练计划,例如每周 3 次 - 周一、周三、周五。我需要为我的日程表生成记录,其中的日期是我接受培训的当年年底。

日程表是:

CREATE TABLE trainingSchedule (
id NUMBER,training_date DATE
);

如果培训日期已经存在 - 不要插入记录。

解决方法

这是一种选择。阅读代码中的注释。

SQL> CREATE TABLE trainingSchedule
  2    (id            NUMBER,3     training_date DATE
  4  );

Table created.

SQL> create sequence seq_tra;

Sequence created.

SQL> -- initial insert (just to show that MERGE will skip it
SQL> insert into trainingschedule values (seq_tra.nextval,date '2021-03-22');

1 row created.

MERGE 将跳过已经插入的行。我知道您只想插入今天日期之后的日期;如果不是这样,只需删除最后一个条件。

SQL> merge into trainingschedule t
  2  using (-- this is a calendar for current year
  3         select trunc(sysdate,'yyyy') + level - 1 datum
  4         from dual
  5         connect by level <= add_months(trunc(sysdate,'yyyy'),12) - trunc(sysdate,'yyyy')
  6        ) c
  7    on (c.datum = t.training_date)
  8    when not matched then insert (id,training_date) values (seq_tra.nextval,c.datum)
  9    -- insert only Mondays,Wednesdays and Fridays
 10    where to_char(c.datum,'dy','nls_date_language = english') in ('mon','wed','fri')
 11    -- insert only dates that follow today's date ("till the end of the current year")
 12      and datum >= trunc(sysdate);

122 rows merged.

SQL>

里面有什么?

SQL> select id,2    to_char(training_date,'dd.mm.yyyy,dy','nls_date_language = english') tr_date
  3  from trainingschedule
  4  order by training_date;

        ID TR_DATE
---------- ------------------------
         1 22.03.2021,mon           --> see? No duplicates
       311 24.03.2021,wed
       309 26.03.2021,fri
       207 29.03.2021,mon
       354 31.03.2021,wed
       321 02.04.2021,fri
<skip>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?