powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Группировка часов с 02:00:00 до 02:00:00 следующего дня
9 сообщений из 9, страница 1 из 1
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39417944
sakot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый
есть следующий запрос который суммирует on_stream_hrs за день - trunc(daytime) и выдает за определенный период,
данные в таблице каждые полчаса, проблема в том что этот запрос суммирует часы за день с 00:00:00 до 23:59:59 а мне нужно с
02:00:00 до 02:00:00 следующего дня, как можно это реализовать?

Заранее благодарю за ответы.

object_code on_stream_hrs daytime K11 0.5 23-Feb-17K11 0.5 23-Feb-17 00:30:00K11 0.5 23-Feb-17 01:00:00K11 0.5 23-Feb-17 02:00:00K11 0.5 23-Feb-17 02:30:00K11 0.5 23-Feb-17 03:00:00K13 0.5 23-Feb-17K13 0.5 23-Feb-17 00:30:00K13 0.5 23-Feb-17 01:00:00K13 0.5 23-Feb-17 02:00:00K11 0.5 23-Feb-17 02:30:00K11 0.5 23-Feb-17 03:00:00

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    select object_code, 
    sum(on_stream_hrs) on_stream_hrs,
    daytime 
from(select object_code, 
            on_stream_hrs, 
            trunc(daytime) daytime 
     from sub_day_status 
     where trunc(daytime) between to_date('1 Feb 2017') and to_date('28 Feb 2017')
     ) 
where (object_code, daytime) in (select object_code, 
                                    trunc(daytime) 
                                 from  sub_day_status 
                                 where trunc(daytime) between to_date('1 Feb 2017') and to_date('28 Feb 2017') 
                                 and on_stream_hrs >0.5)
group by object_code, daytime 
order by daytime
...
Рейтинг: 0 / 0
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39417951
sakot,

group by ..., trunc(daytime - 1/12)
...
Рейтинг: 0 / 0
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39417953
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sakotесть следующий запросТот ещё говнокодец.
sakotсуммирует часы за день с 00:00:00 до 23:59:59 а мне нужно с
02:00:00 до 02:00:00 следующего дня, как можно это реализовать?
Код: plsql
1.
trunc(… - interval '2' hour)
...
Рейтинг: 0 / 0
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39417966
sakot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,
согласен гонокодец:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select object_code, 
    sum(on_stream_hrs) on_stream_hrs,
    daytime 
from(select object_code, 
            on_stream_hrs, 
            trunc(daytime) daytime 
     from sub_day_status 
     where trunc(daytime) between to_date('1 Feb 2017') and to_date('28 Feb 2017')
     ) 
where (object_code, daytime) in (select object_code, 
                                    trunc(daytime) 
                                 from  sub_day_status 
                                 where trunc(daytime) between to_date('1 Feb 2017') and to_date('28 Feb 2017') 
                                 and on_stream_hrs >0.5)
group by object_code, trunc(daytime - interval '2' hour) 
order by daytime



дает следующую ошибку:

[Error] Execution (9: 54): ORA-00979: not a GROUP BY expression
...
Рейтинг: 0 / 0
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39417972
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sakot,

Правильно матерится
Где у тебя в выборке GROUP BY выражение? по чему он будет группировать?
...
Рейтинг: 0 / 0
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39418024
sakot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,
он trunc(daytime + interval '2' hour) добавляет 2 часа к daytime но проблему группировки с
02:00:00 до 02:00:00 следующего дня не решает
...
Рейтинг: 0 / 0
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39418042
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sakotElic,
он trunc(daytime + interval '2' hour) добавляет 2 часа к daytime но проблему группировки с
02:00:00 до 02:00:00 следующего дня не решает

тебе подсказали как решать, а не решили задачу за тебя
...
Рейтинг: 0 / 0
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39418051
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sakotдобавляет 2 часаМозг-то включи.
...
Рейтинг: 0 / 0
Группировка часов с 02:00:00 до 02:00:00 следующего дня
    #39418311
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sakot,
заготовка
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
  1  with t as (
  2  select 1 id, to_date('01.01.2017 00:00:00','dd.mm.yyyy hh24:mi:ss') d, 1 s  from dual union all
  3  select 1 id, to_date('01.01.2017 01:00:00','dd.mm.yyyy hh24:mi:ss') d, 2 s  from dual union all
  4  select 1 id, to_date('01.01.2017 02:00:00','dd.mm.yyyy hh24:mi:ss') d, 3 s  from dual union all
  5  select 1 id, to_date('01.01.2017 23:00:00','dd.mm.yyyy hh24:mi:ss') d, 4 s  from dual union all
  6  select 1 id, to_date('02.01.2017 01:49:49','dd.mm.yyyy hh24:mi:ss') d, 5 s  from dual union all
  7  select 1 id, to_date('02.01.2017 03:00:00','dd.mm.yyyy hh24:mi:ss') d, 6 s  from dual union all
  8  select 1 id, to_date('02.01.2017 17:00:00','dd.mm.yyyy hh24:mi:ss') d, 7 s  from dual union all
  9  select 2 id, to_date('01.01.2017 00:00:00','dd.mm.yyyy hh24:mi:ss') d, 10 s  from dual union all
 10  select 2 id, to_date('01.01.2017 14:00:00','dd.mm.yyyy hh24:mi:ss') d, 20 s  from dual
 11  )
 12  select id,trunc(d-2/24)+2/24 d_start,sum(s) ss from t
 13  group by id,trunc(d-2/24)
 14* order by 1,2
SQL> /

        ID D_START                     SS
---------- ------------------- ----------
         1 31.12.2016 02:00:00          3
         1 01.01.2017 02:00:00         12
         1 02.01.2017 02:00:00         13
         2 31.12.2016 02:00:00         10
         2 01.01.2017 02:00:00         20



ююююю
stax
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Группировка часов с 02:00:00 до 02:00:00 следующего дня
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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