Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / сложение типов interval / 8 сообщений из 8, страница 1 из 1
08.07.2016, 14:31:07
    #39270606
Miranda_star18
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение типов interval
Всем привет! Ребята нужна помощь! Есть база, состоящая из 2-ух таблиц. В одной таблице находится продолжительность выполнения поручения каждым человеком (тип данных interval), а во вторую необходимо поместить суммарное количество времени, потраченного на поручения за каждый месяц по отдельности. В этом то и состоит моя проблема. Все это реализуется в триггере.
Вот что я делаю, чтобы посчитать суммарное количество времени, потраченного за каждый месяц по отдельности:
select sum(to_number(dliteln))into b
from porucheniya
where extract(MONTH from :new.etime)=2;
Исходя из этого, моя проблема в том чтоб перевести тип interval в число для сложения.
И ещё. Нужно эти данные поместить в соответствующие ячейки второй таблицы, где уже указано название месяца. При попытке это реализовать выскакивала ошибка, что триггер не знает вторую таблицу.
Подскажите пожалуйста как решить эти проблемы? кто сталкивался?
...
Рейтинг: 0 / 0
08.07.2016, 14:38:20
    #39270616
сложение типов interval
Miranda_star18Ребятастолько букв печатать... можно было успеть поочитать sql для чайников.
...
Рейтинг: 0 / 0
08.07.2016, 14:38:27
    #39270617
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение типов interval
Miranda_star18,

поиском по форуму пользуйтесь (интервалы и складывали и в числа переводили и т.п.)
а кто кого у вас не знает - см. права
...
Рейтинг: 0 / 0
08.07.2016, 14:40:21
    #39270618
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение типов interval
Miranda_star18Подскажите пожалуйста как решить эти проблемы?

Пойти к архитектору БД и в доступной форме объяснить ему, что так хранимые агрегаты в
Оракуле не делаются. Тогда обе проблемы отпадут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.07.2016, 15:21:57
    #39270671
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение типов interval
Miranda_star18,

во-первых укажите тип данных колонки porucheniya.dlinteln, и поля :new.etime
...
Рейтинг: 0 / 0
08.07.2016, 15:24:06
    #39270675
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение типов interval
Dimitry SibiryakovПойти к архитектору БД и в доступной форме...судя по его стилю именования объектов, с большой уверенностью можно сказать, что это бесполезно
...
Рейтинг: 0 / 0
08.07.2016, 16:27:10
    #39270745
Miranda_star18
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение типов interval
--Eugene--Miranda_star18,

во-первых укажите тип данных колонки porucheniya.dlinteln, и поля :new.etime
porucheniya.dliteln это тип interval day to second
:new.etime это тип timestamp.
Сори, если было, того что нужно не нашла)
...
Рейтинг: 0 / 0
08.07.2016, 16:48:24
    #39270772
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сложение типов interval
Miranda_star18,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SANDBOX@EE>;create table porucheniya as select numtodsinterval(level/3, 'SECOND') as dliteln from dual connect by level <10;

Table created.
SANDBOX@EE>;select * from porucheniya;
DLITELN
---------------------------------------------------------------------------
+000000000 00:00:00.333333333
+000000000 00:00:00.666666667
+000000000 00:00:01.000000000
+000000000 00:00:01.333333333
+000000000 00:00:01.666666667
+000000000 00:00:02.000000000
+000000000 00:00:02.333333333
+000000000 00:00:02.666666667
+000000000 00:00:03.000000000

9 rows selected.
SANDBOX@EE>;select sum(extract(second from dliteln) + extract(minute from dliteln)*60 + extract(hour from dliteln)*60*60 + extract(day from dliteln)*60*60*24) from porucheniya where extract(month from systimestamp) = 7;
SUM(EXTRACT(SECONDFROMDLITELN)+EXTRACT(MINUTEFROMDLITELN)*60+EXTRACT(HOURFROMDLITELN)*60*60+EXTRACT(DAYFROMDLITELN)*60*60*24)
-----------------------------------------------------------------------------------------------------------------------------
                                                                                                                   15
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / сложение типов interval / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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