第 1-7 天的循环数字 ID,oracle APEX
Looping Numeric ID for days 1-7, oracle APEX
我有一个 table 用数字标识一周中的每一天。
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); ...
在另一个包含发货的 table 中,有一个标记为“可用日”的列,其中包含一个数字,表示收到货物后多少天可以提供产品。例如,如果它显示 14 天,初始日期为星期一 (1),则它将在 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。
我能够通过使用解决问题
mod(sd.day_id + sch.available_day, 7)
在 CONCAT
这样简单明了很多:
mod(sd.day_id - 1 + sch.available_day, 7) + 1
|| ' (' || sch.available_day || ')' as "Available Day"
我有一个 table 用数字标识一周中的每一天。
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); ...
在另一个包含发货的 table 中,有一个标记为“可用日”的列,其中包含一个数字,表示收到货物后多少天可以提供产品。例如,如果它显示 14 天,初始日期为星期一 (1),则它将在 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。
我能够通过使用解决问题
mod(sd.day_id + sch.available_day, 7)
在 CONCAT
这样简单明了很多:
mod(sd.day_id - 1 + sch.available_day, 7) + 1
|| ' (' || sch.available_day || ')' as "Available Day"