Главная страница
    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.46 MB
Время: 0.009 c
7-58938
R4D][
2003-07-06 16:15
2003.09.18
Хэндл и имя фаила.


6-58822
danatelo
2003-07-17 16:16
2003.09.18
Пересылка файлов через FTP


1-58647
Armaniak
2003-09-05 07:37
2003.09.18
Как вывести Hint`ы в отдельное поле


1-58634
andriy
2003-09-05 12:47
2003.09.18
Excell: Workbooks.Close?


7-58953
Сергей Князев
2003-07-03 10:41
2003.09.18
Два модема одновременно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский