private ResultSet fetchRows() {- это мой SQL запрос, который я прописываю в отдельном классе.
...
}
private JSONObject toJson(ResultSet rows) {- это преобразование строки ResultSet в строку JSON, который также в отдельном классе прописываеться.
...
}
out.println(...)имеете ввиду?
FOR, GROUP, HAVING, INTO, LIMIT, LOCK, ORDER, PROCEDURE, UNION or '[' expected, got 'a'
[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'a.full_interval_number not in (1,3) -- включить в выборку т' at line 28
SELECT * FROM
(
SELECT
t.event_date,
CASE
WHEN TIME_TO_SEC(t.event_date) > inter.begin AND TIME_TO_SEC(t.event_date) < inter.end
THEN floor((TIME_TO_SEC(t.event_date) - inter.begin) / inter.width)
WHEN TIME_TO_SEC(t.event_date) <= inter.begin
THEN 0
WHEN TIME_TO_SEC(t.event_date) >= inter.end
THEN floor((inter.end - inter.begin) / inter.width)
ELSE NULL
END AS full_interval_number
FROM table t,
(SELECT
TIME_TO_SEC('09:00:00') AS begin,
TIME_TO_SEC('18:00:00') AS end,
TIME_TO_SEC('00:15:00') AS width
) inter
)
a
where
-- отбрасывание из выборки событий между 9 и 10 часами
TIME_TO_SEC(a.event_date) < TIME_TO_SEC('09:00:00')
and TIME_TO_SEC(a.event_date) > TIME_TO_SEC('10:00:00')
-- исключение определенного перечня интервалов
a.full_interval_number not in (1,3)
-- включить в выборку только интервалы 1 < full_interval_number < 10
a.full_interval_number > 1
and a.full_interval_number < 10
А у меня опять загвоздка. Пробовала использовать разные варианты ограничений о которых вы писали:
все работает, все получается и в измененных вариантах тоже, таком как:
Но в дальнейшем приходит понимание, что для моего проекта необходимы корректировки, а именно:
1. изменить вывод временных интервалов. Ранее мы делали так:
здесь по каждому селекту мы получаем временной интервал с его порядковым номером и временными границами.
Нужно вывести все временные интервалы с временными границами по порядку, к примеру по этому запросу:
вывод будет таким:
а нужно:
но не расписывая по каждому селекту
для чего это нужно: в дальнейшем, что бы я смогла исключить определенный временной интервал (ну например занятый определенным действом), взятым из существующей моей другой таблицы, к примеру там занято 2 часа с 10 до 12 часов, тогда расчет будет таким (16- (4*0,30минут))=12, вывод таким:
и Главное, этот запрос будет одним из множества других запросов, с разницей только в размере интервала. Запросу с часовым интервалом как и другим, также необходимо будет рассчитать количество интервалов с учетом занятого времени. Вот в этом думаю и кроется загвоздка почему нельзя расписывать каждый интервал отдельным селектом.