Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Как получить общее и среднее время в стат.выборке?   Найти похожие ветки 

 
miwa ©   (2005-02-14 11:07) [0]

Есть 2 таблички. В первой - инфо о видеофайлах, во второй - об их просмотрах. Тоесть имеем типичное "один-ко-многим".
Делаю вот так:
select files.id, file_name,
 sum(look_length - cast("00:00:00" as time)),
 avg(look_length - cast("00:00:00" as time)),
 count(looks.id)
from looks, files
where looks.file_id = files.id
group by files.id, file_name
order by 3 desc

Работает отлично, но результаты дает в секундах, что не есть удобно. А вот так

select
 files.id,
 file_name,
 cast (sum(cast(look_length as DOUBLE PRECISION)) as time),
 cast (avg(cast(look_length as DOUBLE PRECISION)) as time),
 count(looks.id)
from looks, files
where files.id = looks.file_id
group by files.id, files.file_name
order by 3 desc

Получаю ошибку: Overflow occurred during data type conversion. Conversion error from string "00:00:01.0000".
При этом еще и IBExpert AV выплевывает (правда, не вылетает, просто ругается): AV at 005AC167. Read of address 000000034.


 
Johnmen ©   (2005-02-14 11:21) [1]

1. А в чем удобно ?
2. Текст ошибки неясен ?


 
miwa ©   (2005-02-14 11:32) [2]

1. Удобно, например, в формате ЧЧ:ММ:СС, для чего и делался другой запрос.
2. Текст ошибки ясен. Неясно ее происхождение, особенно в свете from string. А так же как с ней бороться.


 
Sergey13 ©   (2005-02-14 12:09) [3]

2[2] miwa ©   (14.02.05 11:32)
>1. Удобно, например, в формате ЧЧ:ММ:СС, для чего и делался другой запрос.
Ну дык и интерпретируй на клиенте как хочешь.


 
miwa ©   (2005-02-14 12:22) [4]

2 Sergey13 ©   (14.02.05 12:09) [3]
Ну дык и интерпретируй на клиенте как хочешь.

Тогда пните в нужном направлении, как это сделать? OnCalcFields обрабатывать? А, чуть не забыл. Использую EhLib-ы.


 
miwa ©   (2005-02-14 12:23) [5]

Тоесь, я имею в виду, насколько такое решение будет правильным - вместо получения данных из запроса в формате time приводить их в этот формат на клиенте.


 
Sergey13 ©   (2005-02-14 12:33) [6]

2[4] miwa ©   (14.02.05 12:22)
>Тогда пните в нужном направлении, как это сделать? OnCalcFields обрабатывать?
А почему нет? Раздели на 60, получишь минуты. Еще раз - часы.

>А, чуть не забыл. Использую EhLib-ы.
Это фиолетово, ИМХО.


 
miwa ©   (2005-02-14 12:50) [7]

>А, чуть не забыл. Использую EhLib-ы.
Это фиолетово, ИМХО.

Мало ли. А вдруг там есть какая-то фича, о которой я не подозреваю :о).

В общем, если обработка в OnCalcFields премлема (как метод) - всем спасибо за внимание и участие.


 
Deniz   (2005-02-15 06:38) [8]

Не обязательно OnCalcField, можно в OnGetText у поля хоть "черта лысего" написать.



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
3-1108442952
Tigerr
2005-02-15 07:49
2005.03.13
Удаление записи из БД


1-1109345934
denis24
2005-02-25 18:38
2005.03.13
Tbitbtn.glyph


4-1106920907
grigory
2005-01-28 17:01
2005.03.13
Как пользоваться FindWindowEx?


1-1109494266
Guitar
2005-02-27 11:51
2005.03.13
Цифровая фильтрация сглаживание в примерах Delphi


1-1109453949
StarLit
2005-02-27 00:39
2005.03.13
Как лучше организовать список из двух