powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите адаптировать запрос от SQLite к MySQL
4 сообщений из 4, страница 1 из 1
Помогите адаптировать запрос от SQLite к MySQL
    #39166073
kostas2016
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос для SQLite на подсчет значения между двумя выбранными датами:

++

WITH RECURSIVE dates(date) AS (
VALUES({edbegdate})
UNION ALL
SELECT date(date, '+1 day')
FROM dates
WHERE date < {edenddate}
)

SELECT
"date",
TOTAL(
(
SELECT TOTAL(rent.rent / (julianday(rent."end") - julianday(rent."begin"))) FROM rent WHERE "date" > rent."begin" AND "date" < rent."end"
AND (CASE WHEN {ComboBox1}=-1 THEN 1=1 ELSE rent.id_car={ComboBox1} END)
)
) as TotalResult

FROM dates

+++

MySQL ругается на синтаксис


Что нужно изменить?
...
Рейтинг: 0 / 0
Помогите адаптировать запрос от SQLite к MySQL
    #39166080
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kostas2016,

да все тут надо менять, рекурсивных запросов нет в mySQL, так что надо все переписывать, в зависимости от семантики тут может быть что угодно от совсем просто до вообще невозможно.

также могут быть проблемы с данными т. к. рекурсивные запросы могут строки данных, а в бд данных таких может не быть.
...
Рейтинг: 0 / 0
Помогите адаптировать запрос от SQLite к MySQL
    #39166082
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

похоже рекурсивный подзапрос генерирует все даты в диапазоне, в общем, наверное сразу лучше нагенирить их в какой-то табличке на год вперед, и использовать. Потом еще на год и т. д.
...
Рейтинг: 0 / 0
Помогите адаптировать запрос от SQLite к MySQL
    #39167222
DriveSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select
SUM(
(
SELECT SUM(rent.rent / (datediff(rent.`end`, rent.`begin`)+1)) FROM rent WHERE `selected_date` >= rent.`begin` AND `selected_date` <= rent.`end`
AND (CASE WHEN {ComboBox1}=-1 THEN 1=1 ELSE rent.id_car={ComboBox1} END)
)
)

from

(select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v

where selected_date between {edbegdate} and {edenddate}
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите адаптировать запрос от SQLite к MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]