Главная страница
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.018 c
14-58874
Экселенц
2003-08-24 18:29
2003.09.18
AIM


14-58862
Relaxxx
2003-08-30 14:51
2003.09.18
Как мне узнать что в Едит ввели нечисло а строковое значение??


6-58825
and_2
2003-07-15 08:44
2003.09.18
ping!


1-58625
Jurmich
2003-09-05 14:32
2003.09.18
Как правильно сравнивать даты?


3-58524
DBDev
2003-08-27 10:05
2003.09.18
Помогите разобрться с запихиванием jpg в базу???