У меня есть таблица «SchoolYearStartEnd»
CREATE TABLE SchoolYearStartEnd (
id INT PRIMARY KEY
UNIQUE,
StartDate DATE,
EndDate DATE
);
и вторая таблица «SchoolYearsTeachingDays»
CREATE TABLE SchoolYearsTeachingDays (
aDate DATE PRIMARY KEY
UNIQUE
);
, которую я хочу заполнить датами из CTE, например:
WITH RECURSIVE dates(x) AS (
SELECT (SELECT StartDate FROM SchoolYearStartEnd)
UNION ALL
SELECT DATE(x, '+1 DAYS') FROM dates WHERE x < (SELECT EndDate FROM SchoolYearStartEnd)
)
SELECT * FROM dates WHERE CAST(STRFTIME('%w',x) AS INTEGER) > 0
;
Я пытался использовать этот код здесь:
INSERT INTO SchoolYearsTeachingDays (aDate) VALUES (
WITH RECURSIVE dates(x) AS (
SELECT (SELECT StartDate FROM SchoolYearStartEnd)
UNION ALL
SELECT DATE(x, '+1 DAYS') FROM dates WHERE x < (SELECT EndDate FROM SchoolYearStartEnd)
)
SELECT * FROM dates WHERE CAST(STRFTIME('%w',x) AS INTEGER) > 0 -- To exclude Sundays.
;
);
, но безуспешно.Я получаю эти ошибки: Ошибка: рядом с "RECURSIVE": синтаксическая ошибка sqlite> Ошибка: рядом с ")": синтаксическая ошибка
Так чего мне здесь не хватает?
Best, Pal