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

Вниз

Построение агрегатной функции SQL для нечисловых знач.   Найти похожие ветки 

 
alex-ran   (2003-08-27 11:23) [0]

Уважаемые мастера, возникла необходимость написать запрос для таблицы детальной распечатки телефонных звонков так чтобы происходила группировка по номеру абонента с подсчетом количества звонков к нему, общей продолжительности и стоимости. Примерная структура таблицы:
Abonent - String - телефон абонента
TimeLong - Time - Продолжительность звонка
Coast - Currency - Стоимость звонка

Вот текст работающего запроса:
select Abonent, Count(Abonent) as tCOUNT, Sum(Coast) as tSUMA,
CAST("0:" || (TRIM(CAST(CAST((Sum(Extract(minute from TimeLong))*60+Sum(Extract(second from TimeLong)))/60 as INTEGER) as Character(10))) || ":" ||
TRIM(CAST((CAST((Sum(Extract(minute from TimeLong))*60+Sum(Extract(second from TimeLong))) as INTEGER)-CAST((Sum(Extract(minute from TimeLong))*60+Sum(Extract(second from TimeLong)))/60 as INTEGER)*60) as Character(10)))) as Time) as RLong
from Det0307
Group By Abonent order by tSUMA Desc

Ужас, не правда ли. И это при том что пока не предусмотрен режим превышения общей продолжительности звонков более 1 часа.

Вопрос 1: можно ли построить функцию суммирования времени в SQL как-нибудь попроще?

Вопрос 2: Я пытался присвоить псевдоним CAST((CAST((Sum(Extract(minute from TimeLong))*60+Sum(Extract(second from TimeLong))) as INTEGER) AS pLong и далее в тексте этого же запроса использовать его в другом вычисляемом поле - но не дает, хотя в Access конструкция типа
SELECT Field, Field*2 AS F1, F1*3 AS F2 From Table
вполне работоспособна.
Можно ли так делать в BDE?


 
Zacho ©   (2003-08-27 11:28) [1]

Могу дать небольшой совет - для хранения кол-ва времени гораздо лучше подходит целочисленный тип данных.


 
alex-ran   (2003-08-27 11:29) [2]


> Zacho ©


 
Sergey13 ©   (2003-08-27 11:32) [3]

2alex-ran (27.08.03 11:23)
Ты строишь биллинг на парадоксе?!!!


 
alex-ran   (2003-08-27 11:34) [4]


> Zacho ©

К сожалению это выбираю не я, файлы получаю из центра связи, а конвертить базы конечно можно, но как-то это не красиво.
А по поводу 2-го вопроса можешь что сказать?


 
alex-ran   (2003-08-27 11:37) [5]


> Sergey13 ©

А чего такое Биллинг?
Мне руководство фирмы задачу поставило, вот и извращаемся.


 
Zacho ©   (2003-08-27 11:38) [6]


> alex-ran (27.08.03 11:34) [4]

Насколько помню, в Local SQL такие конструкции не поддерживаются.


 
Sergey13 ©   (2003-08-27 11:48) [7]

Биллинг - это и есть (если я ни чего не путаю) система учета и расчетов по телефонным услугам. Обычно такие системы делаются на более продвинутых БД.



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
7-58942
hawkins
2003-06-29 08:51
2003.09.18
автозапуск программы перед выключением


4-58961
alexus
2003-07-18 10:51
2003.09.18
Отлов клика на иконке в трее


3-58587
Rat
2003-08-26 17:00
2003.09.18
При выполнении запроса UPDATE данные в таблице не обновляются


3-58601
AlexWeb
2003-08-26 13:11
2003.09.18
Почему не редактируется таблица в DBGrid-е?


14-58919
Vlad Oshin
2003-08-28 10:29
2003.09.18
опытные программисты произведут отправку Вашего письма