powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / промежуточные итоги oracle
8 сообщений из 8, страница 1 из 1
промежуточные итоги oracle
    #39766498
blvckvtvnv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем вайфай! Возникла трудность. Есть запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
select z.cz, iv.*
  from (select tst,
               to_char(tst, 'dd.mm.yyyy') d,
               to_char(tst, 'hh24:mi') || '-' ||
               to_char(tst + 1 / 48, 'hh24:mi') hm,
               sum(nvl(val, 0)) "total"
          from (select ps.tst,
                       ps.id_eq,
                       ps.n_sh,
                       round (nvl2(val_day,
                                  val_day / 48,
                                  (select val - val_day_out / 48
                                     from buf_v_int b
                                    where b.dd_mm_yyyy = ps.dd
                                      and b.n_inter_ras = ps.ni
                                      and b.n_sh =
                                          nvl(substitution_nsh, ps.n_sh)
                                      and b.n_gr_ty = 1) * port_dept * portion),
                             2) val
                  from (select dd,
                               ni,
                               s.id_eq,
                               s.n_sh,
                               substitution_nsh,
                               port_dept,
                               portion,
                               val_day,
                               val_day_out,
                               dd + (ni - 1) / 48 tst,
                               dd + ni / 48 tend
                          from (select trunc(to_date(:, 'dd.mm.yyyy hh24:mi')) +
                                       (level - 1) dd
                                  from dual
                                connect by level <= greatest(to_date(:,
                                                                     'dd.mm.yyyy hh24:mi') -
                                                             to_date(:,
                                                                     'dd.mm.yyyy hh24:mi'),
                                                             1) + 1) d,
                               (select level ni
                                  from dual
                                connect by level <= 48) d,
                               (select sp.n_sh,
                                       (select substitution_nsh
                                          from cntr4new_prg
                                         where n_sh = sp.n_sh) substitution_nsh,
                                       e.id_eq,
                                       nvl((select portion
                                             from cntr4new_prg
                                            where n_sh = sp.n_sh
                                              and id_dept =
                                              and not_use is null
                                              and lower(nvl(is_total, 'n')) != 'y'),
                                           nvl((select portion
                                                 from counters_other_dept
                                                where n_sh = sp.n_sh
                                                  and id_dept =),
                                               1)) port_dept,
                                       sp.portion,
                                       sp.val_day,
                                       nvl((select sum(val_day)
                                             from sh_eq_percent s
                                            where s.n_sh = sp.n_sh
                                              and s.id_eq not in
                                                  (select id_eq
                                                     from equipments e,
                                                          (select id_dept
                                                             from departmens
                                                           connect by prior
                                                                       id_dept =
                                                                       id_parent
                                                            start with id_dept =) d
                                                    where e.id_dept = d.id_dept)),
                                           0) val_day_out
                                  from (select t.id_eq,
                                               t.s_name,
                                               level ll,
                                               t.prn_ord
                                          from EQUIPMENTS t
                                         where t.id_dept =
                                        connect by prior t.id_eq = parent_id_eq
                                         start with parent_id_eq is null) e,
                                       sh_eq_percent sp
                                 where sp.id_eq = e.id_eq) s
                         where dd + (ni - 1) / 48 between
                               to_date(:, 'dd.mm.yyyy hh24:mi') and
                               to_date(:, 'dd.mm.yyyy hh24:mi')) ps)
         group by tst) iv,
       (select st_hour * 100 + st_min shm,
               end_hour * 100 + end_min - 1 ehm,
               substr(code_zone, 1, 1) cz
          from tarifs_ee_zone
         where id_tr = (select id_tr
                          from (select id_tr,
                                       row_number() over(order by st_date desc) rwn
                                  from tarifs_ee
                                 where st_date <=
                                       trunc(to_date(:, 'dd.mm.yyyy hh24:mi')))
                         where rwn = 1)) z
 where to_char(iv.tst, 'hh24') * 100 + to_char(iv.tst, 'mi') between z.shm and
       z.ehm
 order by iv.tst


Я его не писал. Он выводит данные как показано на рисунке. Мне же нужно вывести промежуточные итоги по каждому номеру ИТОГО: и под каждой колонкой сумму. Данные за каждые 30 минут выводить не нужно. Как это сделать?
...
Рейтинг: 0 / 0
промежуточные итоги oracle
    #39766502
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blvckvtvnv,

group by
...
Рейтинг: 0 / 0
промежуточные итоги oracle
    #39766515
blvckvtvnv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можете в коде указать где его применить?-2-,
...
Рейтинг: 0 / 0
промежуточные итоги oracle
    #39766517
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blvckvtvnvможете в коде указать где его применить?Примерно между началом и концом.
...
Рейтинг: 0 / 0
промежуточные итоги oracle
    #39766525
blvckvtvnv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

у меня есть group by и я сделал sum по значениям выводит какие то повторяющиеся записи и 336 шт.
...
Рейтинг: 0 / 0
промежуточные итоги oracle
    #39766528
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blvckvtvnv,

Вы уверены что запрос выодит то что на картинке?
Код: plsql
1.
2.
3.
4.
5.
6.
  from (select tst,
               to_char(tst, 'dd.mm.yyyy') d,
               to_char(tst, 'hh24:mi') || '-' ||
               to_char(tst + 1 / 48, 'hh24:mi') hm,
               sum(nvl(val, 0)) "total"
          from (...



ps
возьмите простенький запрос (напр на emp) с группировкой
и добавте промежуточный итог
потом перенесете на свой
смотрите rollup, grouping sets

.....
stax
...
Рейтинг: 0 / 0
промежуточные итоги oracle
    #39766530
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blvckvtvnvу меня есть group by и я сделал sum по значениям выводит какие то повторяющиеся записи и 336 шт.Результат не устраивает? - Значит "какие-то" не такие у тебя group by или sum.
...
Рейтинг: 0 / 0
промежуточные итоги oracle
    #39767002
blvckvtvnv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

я вот и гуглил промежуточные итоги выдало rollup но в этом большом запросе не получается правильно его использовать, то на идентификатор ругается, то на групповая функция не может быть одногруппной
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / промежуточные итоги oracle
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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