С рекурсивным запросом с комнатой Android - PullRequest
0 голосов
/ 08 апреля 2019

Необходимо получить строки с последними 10 последними датами из таблицы, даже если некоторые даты отсутствуют в таблице.

Этот запрос работает нормально, чтобы получить даты, но проблема в том же запросе в андроид комнате даовыдает ошибку компиляции в 'SELECT x + 1' x не может быть разрешена.

@Query(WITH RECURSIVE
 stepDtailsTable(x) AS (
        SELECT 0
        UNION ALL
        SELECT x + 1 FROM stepDtailsTable
        LIMIT(SELECT((julianday('2019-03-20')-julianday('2019-03-01')))+1)
        )
        SELECT date(julianday('2019-03-01'),'+'||x||' days')as date FROM stepDtailsTable")
StepDetailsPojo getLastTenDayData();

1 Ответ

0 голосов
/ 11 апреля 2019

Я заметил, что вы используете константы для юлианских дат, тогда как вы хотели запросить последние 10 последних дат из таблицы. Вот запрос, который делает это, с заполнением пробелов от максимальной даты, найденной в таблице, до 10 дней назад. Я не могу проверить вашу платформу, поэтому она может не устранить полученную вами ошибку компилятора, возможно, из-за того, что RECURSIVE не поддерживается. Надеюсь, это продвинет вас на шаг вперед.

WITH RECURSIVE
 cte(x) AS (
    SELECT julianday(date(max(thedate))) from TheDataTable  
    UNION ALL
    SELECT x-1 FROM cte
    LIMIT 10
)
SELECT date(x) FROM cte
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...