Ошибка создания таблицы в SQLite с использованием CREATE TABLE <name>AS SELECT - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать таблицу дат, которая генерирует даты EOM для определенного диапазона дат c, но SQLite выдает ошибку при создании таблицы. Текущий код, который у меня есть, выглядит следующим образом:

WITH RECURSIVE cnt (
        x
) AS (
    SELECT
            0
    UNION ALL
    SELECT
            x + 1
    FROM
            cnt
    LIMIT (
            SELECT
                    ROUND(((julianday ('2020-05-01') - julianday ('2016-04-01')) / 30) + 1))
)

CREATE TABLE report_dates AS
SELECT
  date(date(julianday ('2016-04-01'), '+' || x || ' month'), '-1 day') AS month
FROM
  cnt;

Однако я получаю сообщение об ошибке Query 1 ERROR: near "CREATE": syntax error. Удаление строки CREATE TABLE report_dates AS не вызывает проблем. Что могло быть этим движением?

1 Ответ

1 голос
/ 29 мая 2020

cte идет после create table:

CREATE TABLE report_dates AS
WITH RECURSIVE cnt (x) AS (
    SELECT 0
    UNION ALL
    SELECT x + 1
    FROM cnt
    LIMIT (
        SELECT ROUND(((julianday ('2020-05-01') - julianday ('2016-04-01')) / 30) + 1)
    )
)
SELECT date(date(julianday ('2016-04-01'), '+' || x || ' month'), '-1 day') AS month
FROM cnt;
...