Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получить данные на одно время суток / 19 сообщений из 19, страница 1 из 1
09.01.2017, 10:02
    #39380672
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Добрый день
Есть таблица для сохранения данных мониторинга, данные записываются раз в час. Мне нужно вывести данные на конец суток, не могу придумать как это сделать. Сама таблица:
CREATE TABLE DATABASE_LOG (
ID INTEGER NOT NULL,
COL1 INTEGER,
TIME_WRITE TIMESTAMP
);
...
Рейтинг: 0 / 0
09.01.2017, 10:07
    #39380675
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
GallemarМне нужно вывести данные на конец суток, не могу придумать как это сделать.
Пример данных хоть бы привёл.
...
Рейтинг: 0 / 0
09.01.2017, 10:12
    #39380680
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Gallemar,

что значит вывести данные на конец суток? За 24 часа каких-то суток что ли?

Код: sql
1.
2.
3.
select *
from DATABASE_LOG
where TIME_WRITE between '08.01.2017' AND '08.01.2017 23:59:59.999'



или даже

Код: sql
1.
2.
3.
select *
from DATABASE_LOG
where TIME_WRITE >= '08.01.2017' AND TIME_WRITE < '09.01.2017'
...
Рейтинг: 0 / 0
09.01.2017, 10:15
    #39380682
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Gallemar,

А в чём сложность-то? Общее направление - типа того:

Код: sql
1.
2.
3.
4.
5.
select * from DATABASE_LOG d
  join (select max(time_write) tm
          from DATABASE_LOG
          group by cast(time_write as date)) q
  on d.time_write = q.time_write



В зависимости от диалекта разный только способ обрезания до "только даты".
...
Рейтинг: 0 / 0
09.01.2017, 10:16
    #39380684
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
wadman,
...
Рейтинг: 0 / 0
09.01.2017, 10:25
    #39380692
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
WildSery,

у него 1 диалект
...
Рейтинг: 0 / 0
09.01.2017, 10:28
    #39380695
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Gallemar,

ну а
Симонов Денисчто значит вывести данные на конец суток? За 24 часа каких-то суток что ли?
?
...
Рейтинг: 0 / 0
09.01.2017, 10:29
    #39380697
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Симонов Денис,

И в чём проблема?
group by cast(time_write as varchar(11)) если не ошибаюсь.
...
Рейтинг: 0 / 0
09.01.2017, 10:31
    #39380701
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Симонов ДенисWildSery,

у него 1 диалект

Нет,конкретно в этом случае - третий. Это уже моя поделка, а не сопровождение чужого.
...
Рейтинг: 0 / 0
09.01.2017, 10:35
    #39380707
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Gallemar,

если WildSerg правильно понял что ты хочешь то для 1 диалекта это можно сделать так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
WITH times AS (
  SELECT MAX(time_write) tm
  FROM DATABASE_LOG
  GROUP BY CAST(EXTRACT(YEAR FROM time_write) || '-' || 
                EXTRACT(MONTH FROM time_write) || '-' || 
                EXTRACT(DAY FROM time_write) AS DATE)
)
SELECT * 
FROM times
  LEFT JOIN DATABASE_LOG d
    ON d.time_write = times.time_write
...
Рейтинг: 0 / 0
09.01.2017, 10:36
    #39380710
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Gallemar,

ну тогда тебе вариант WildSery подойдёт
...
Рейтинг: 0 / 0
09.01.2017, 10:36
    #39380711
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
wadmanGallemar,

ну а
Симонов Денисчто значит вывести данные на конец суток? За 24 часа каких-то суток что ли?
?

Скажу более точно - мне нужно вывести в табличном виде данные за каждый день, но не все, а только последнее значение, оно снимается в 23 часа.

Попробовал пример, не получается и не могу понять почему:

select * from DATABASE_LOG d
join (select max(time_write) tm
from DATABASE_LOG
group by cast(time_write as date)) q
on d.time_write = q.time_write

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
Q.TIME_WRITE.
At line 5, column 23.
...
Рейтинг: 0 / 0
09.01.2017, 10:38
    #39380712
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Gallemar,

Это я на автомате написал.
Внутри же алиас поля не так называется.
...
Рейтинг: 0 / 0
09.01.2017, 10:38
    #39380713
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Gallemar,

ну ты совсем обленился... ошибку элементарную найти не можешь. Смотри как алиас поля у тебя в производной таблице зовётся
...
Рейтинг: 0 / 0
09.01.2017, 11:00
    #39380729
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Симонов Денис, правда не могу найти ошибку
...
Рейтинг: 0 / 0
09.01.2017, 11:05
    #39380735
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
Gallemarправда не могу найти ошибку
Шутишь? Ты альяс на group by навесил. Так не бывает. Альясы на таблицы или столбцы вешаются.
...
Рейтинг: 0 / 0
09.01.2017, 11:23
    #39380743
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
GallemarПопробовал пример, не получается и не могу понять почему:

select * from DATABASE_LOG d
join (select max(time_write) tm
from DATABASE_LOG
group by cast(time_write as date)) q
on d.time_write = q. time_write
...
Рейтинг: 0 / 0
09.01.2017, 11:38
    #39380753
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
hvlad, спасибо.
Первый рабочий день и уже хочется кому-нибудь по голове настучать....
...
Рейтинг: 0 / 0
09.01.2017, 12:49
    #39380812
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные на одно время суток
GallemarСкажу более точно - мне нужно вывести в табличном виде данные за каждый день, но не все, а
только последнее значение, оно снимается в 23 часа.

"Последнее значение" и "значение в 23 часа" это как бы немного разные вещи. Запрос на
второе гораздо проще.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получить данные на одно время суток / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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