powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / сумма времени
8 сообщений из 8, страница 1 из 1
сумма времени
    #32472912
vi007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые Гуру!
Помогите решить.
Есть таблица.

N Time
---------
1 12:00:00
2 13:12:21
2 13:56:32
3 20:45:06

надо с помощью запроса
сгруппировать по N , а время сложить
...
Рейтинг: 0 / 0
сумма времени
    #32472994
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select T.N, SUM(T.Time-cast('0:00' as time)) FROM TABLE1 T
group by T.N
...
Рейтинг: 0 / 0
сумма времени
    #32473265
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сгруппировать по N , а время сложить
А смысл какой в складывании времени? Скорее всего ошибку получишь. TIME - это момент времени, а не продолжительность во времени и больше 24 часов вроде быть не может. Полночь+Полдень=?
...
Рейтинг: 0 / 0
сумма времени
    #32473623
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Серега

Надо полагать, у vi007 Time - это не моменты времени, а величина временного интервала. Тогда все логично.
...
Рейтинг: 0 / 0
сумма времени
    #32474827
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2mv
Надо полагать, у vi007 Time - это не моменты времени, а величина временного интервала. Тогда все логично.
У vi007 это может быть чем угодно, но у ФВ это момент времени. Я попробовал сделать sum(time_field) - получил "data type not supported for arithmetic". ФБ1.5 SQL диалект 3. Может конечно руки у меня кривые, но...
...
Рейтинг: 0 / 0
сумма времени
    #32474847
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серега Я попробовал сделать sum(time_field) - получил "data type not supported for arithmetic". ФБ1.5 SQL диалект 3. Может конечно руки у меня кривые, но...
Дело не в руках, а в глазах. Я же написал

select T.N, SUM(T.Time-cast('0:00' as time)) FROM TABLE1 T
group by T.N
...
Рейтинг: 0 / 0
сумма времени
    #32475087
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2FreemanZAV
Век живи, век учись. Спасибо. Надо запомнить.
...
Рейтинг: 0 / 0
сумма времени
    #32475133
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати есть вариант суммирования через UDF. Писать ничего не надо. Достаточно взять готовую UDF (из Rfunc например) которая принимает аргумент INTEGER и возврашает INTEGER. Пример:
Исходная функция
DECLARE EXTERNAL FUNCTION IIF
INTEGER,
INTEGER,
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'fn_iif' MODULE_NAME 'rfunc'

Функция для времени:
DECLARE EXTERNAL FUNCTION IIF_D
TIME,
TIME,
TIME
RETURNS INTEGER BY VALUE
ENTRY_POINT 'fn_iif' MODULE_NAME 'rfunc'
(Возвращает время в ms)

Такой вариант прокатывает и с DATE.
Для TIMESTAMP тоже можно сделать подобную вещь.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / сумма времени
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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