我有一张表格,用一个数字标识一周中的每一天。
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.
答案 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"