循环数字ID为第1-7天,oracle APEX

时间:2018-05-29 15:34:11

标签: sql oracle-apex oracle-apex-5.1

我有一张表格,用一个数字标识一周中的每一天。

CREATE TABLE days_schedule (
days_schedule_id INT,
schedule_id INT,
day_id INT);

INSERT INTO TABLE days_schedule
VALUES (1001, 1007, 1);

INSERT INTO TABLE days_schedule
(1002, 1008, 2); ...

在另一张包含货件的表格中,有一个标有“可用日”的列,其中有一个数字表示收到产品可用货物的天数。例如,如果它表示星期一(1)的第一天为14天,那么它将在14天后的星期日(7)提供。现在,我用过:

SELECT ...,
CONCAT(CONCAT(CONCAT(
sd.day_id + sch.available_day, ' ('
), sch.available_day
), ')'
) as 'Available Day'
FROM schedule sch
INNER JOIN days_schedule sd
ON (sch.schedule_id = sd.schedule_id)

我遇到的问题是,只需添加两列的值就可以提供一个总和(上例中为15)。

如何添加值并强制计数在高于7时重置为1.

2 个答案:

答案 0 :(得分:0)

我能够通过使用来解决问题     {{data}}mod(sd.day_id + sch.available_day, 7)

答案 1 :(得分:0)

这更简单,更清晰:

mod(sd.day_id - 1 + sch.available_day, 7) + 1
   || ' (' || sch.available_day || ')' as "Available Day"