Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Второй вопрос по SQL [D7, Paradox]


phantom2040 ©   (2003-02-28 09:04:00) 

Привет Мастера!!!
С этой задачей справились

Интересует такой вопрос, есть таблица по передаче факсов, поля следующие 1 - "категория" - в нем информация типе передаваемого сообщения к примеру: служебный, население и т.д. , 2-"Тип вызова" - в нем информация о типе вызова: Междугородний, международный, 3 - "Количество листов" - в нем сколько листов передано, 4 - "Всего" - соответственно сумма уплаченная за передачу. Задача такая нужно рассортировать по категориям по первому полю, каждую категорию рассортировать по типу вызова, просчитать количество услуг в каждой категории, просуммировать количество листов, и просумировать поле всего для каждой категории.
Вопрос можно ли такое сделать средствами языка SQL, в принципе задача решена с помошью циклов и массивов, но интересно можно ли более рационально решить все это дело, так сказать одной строкой, я уже второй раз сталкиваюсь с такой задачей и все время приходится извращаться при помощи массивов и циклов????
Таким вот способом
select TPKLIENT, TPVYZ, COUNT(*) as KUSL , SUM(ITOGO) as ITOG from faxout.db group by TPKLIENT, TPVYZ
Далее появился еще один вопрос нужно теперь сделать выборку за определенный период, скажем за текущий месяц, тогда плюс к тому описанию полей еще одно "Дата исполнения" в нем дата исполнения заказа.
Теперь посложнее в запрос это поле ни как не хочет входить, по скольку сгрупировать с ним не возможно, каким образом сначала сделать выборку по дате, а потом разгрупировать по категориям????


Johnmen   (2003-02-28 10:18:00) [1]

Поскольку в локальном SQL есть ограничения по применению вложенных запросов, то м.б. стоит посмотреть в сторону UNION.


phantom2040   (2003-02-28 09:53:00) [2]

Занчит корректирую задачу, сначала нужно выбрать записи по периоду текущего месяца с 1 числа до последнего, а потом из выбранного выбрать количество предоставленных услуг с групппировкой по категориям и сумированием итогов.
Это плучается запрос из запроса что ли.........


Johnmen   (2003-02-28 09:35:00) [3]

Приведи структуру таблицы и предполагаемый запрос.


Соловьев   (2003-02-28 09:32:00) [4]


...
where
(
Date>=:Cast(:PDATA1 as DateTime)
and
Date<=:Cast(:PDATA2 as DateTime)
)
Group by Kategor


phantom2040   (2003-02-28 09:26:00) [5]

Нет это последний, курсовик я не пишу, просто хочу оптимизировать программу, но у меня мало информации по языку SQL, а времени по электронным изданиям лазить нет, а на счет первого вопроса спасибо популярно все объяснили, а вот на счет второго........


Alexandr   (2003-02-28 09:15:00) [6]

курсовик пишешь?
И много у тебя еще вопросов?
Сам разобраться не пробовал?


Наверх

Титульная страница Поиск, карта сайта Написать письмо