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

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

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

Надо полагать, у vi007 Time - это не моменты времени, а величина временного интервала. Тогда все логично.
...
Рейтинг: 0 / 0
09.04.2004, 09:31
    #32474827
Серега
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма времени
2mv
Надо полагать, у vi007 Time - это не моменты времени, а величина временного интервала. Тогда все логично.
У vi007 это может быть чем угодно, но у ФВ это момент времени. Я попробовал сделать sum(time_field) - получил "data type not supported for arithmetic". ФБ1.5 SQL диалект 3. Может конечно руки у меня кривые, но...
...
Рейтинг: 0 / 0
09.04.2004, 09:41
    #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
09.04.2004, 11:31
    #32475087
Серега
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма времени
2FreemanZAV
Век живи, век учись. Спасибо. Надо запомнить.
...
Рейтинг: 0 / 0
09.04.2004, 11:49
    #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
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / сумма времени / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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