![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Второй вопрос по 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]курсовик пишешь?
И много у тебя еще вопросов?
Сам разобраться не пробовал?