Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

Построение агрегатной функции 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
6-58816
DenKop
2003-07-11 02:06
2003.09.18
Upload FTP несовпадения размеров исходного и полученного файлов


14-58896
KaPaT
2003-08-28 16:32
2003.09.18
Бортовые компьютеры автомобилей (BMW, Mercedes и т.д.)


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


1-58733
Dilezzz
2003-09-07 14:48
2003.09.18
Чтение из файла. В чем ошибка?


14-58891
CrazyHackers
2003-08-29 14:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский