![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запросы
dumka © (2008-04-22 10:02:00)Добрый день!
Помогите "добить" запрос
SELECT Телефоны.[Номер телефона], Абоненты.[ФИО абонента], Count(Разговоры.[Номер разговора]) AS [кол-во звонков]
FROM (Абоненты INNER JOIN Телефоны ON Абоненты.[Номер абонента] = Телефоны.[Номер абонента]) INNER JOIN Разговоры ON Телефоны.[Номер телефона] = Разговоры.[Номер телефона]
WHERE (((Month([Дата разговора]))=3))
GROUP BY Телефоны.[Номер телефона], Абоненты.[ФИО абонента]
вычисляет кто и сколько раз разговаривал по телефону в марте, но этого мало, надо из этого извлечь лидера по количеству звонков
заранее благодарю
Плохиш (2008-04-22 12:59:00) [1]
> dumka (22.04.08 12:43) [19]
> платформа Акцессу,а программирование в Дельфи
Можно указать хоть один пост в этой ветке с программированием?
К [18] стоило добавить, что для начала надо прочитать какую-нибуть литературу по акцессу, хотя бы и справку, и включить наконец логику, если она имеется.
dumka (2008-04-22 12:43:00) [2]
> Уже давно пора перейти в форум по Акцессу, здесь же обсуждается
> только программирование в Дельфи, а не составления запросов
> для той или другой БД.
платформа Акцессу,а программирование в Дельфи
app (2008-04-22 12:31:00) [3]> dumka (22.04.2008 11:57:16) [16]
Уже давно пора перейти в форум по Акцессу, здесь же обсуждается только программирование в Дельфи, а не составления запросов для той или другой БД.
Sergey13 (2008-04-22 11:59:00) [4]WHERE (((Тариф.[Название города]) ='Москва') and NOT EXISTS (select..... WHERE (((Тариф.[Название города]) <>'Москва')
dumka (2008-04-22 11:57:00) [5]Но таким запросом отбираются все записи с Москвой, а нужно только Москва
dumka (2008-04-22 11:55:00) [6]Уменя возник еще один маленький вопрос. Как отобрать абонентов, которые звонили только в Москву и больше никуда?
Мой вариант
SELECT Телефоны.[Номер телефона], Тариф.[Название города], Month([Дата разговора]) AS Выражение1
FROM Тариф INNER JOIN (Телефоны INNER JOIN Разговоры ON Телефоны.[Номер телефона] = Разговоры.[Номер телефона]) ON Тариф.[Код города] = Разговоры.[Код города]
WHERE (((Тариф.[Название города]) In ('Москва'))AND ((Month([Дата разговора]))=3));
dumka (2008-04-22 10:47:00) [7]Получилось, я этого точно не знал, спасибо!!!
Рамиль (2008-04-22 10:46:00) [8]Какая тебе разница одна или не одна? Все равно при таком запросе всё считаться будет. Бери первую запись из отсортированной выборки.
dumka (2008-04-22 10:44:00) [9]
> далее твой запрос с нужной сортировкой
Имеешь ввиду отсортировать и выбрать первую запись
dumka (2008-04-22 10:43:00) [10]
> СУБД какая?
access
А сортировка тут зачем, нужно выбрать одну запись
Sergey13 (2008-04-22 10:37:00) [11]> [9] dumka (22.04.08 10:29)
СУБД какая? Ограничение вывода строк какое нибудь есть? Типа Top, First или нечто похожего?
select top 1
далее твой запрос с нужной сортировкой
dumka (2008-04-22 10:29:00) [12]Я дальше продвинулся, сделал вот так
Select max([кол-во звонков])
from (SELECT Телефоны.[Номер телефона], Абоненты.[ФИО абонента], Count(Разговоры.[Номер разговора]) AS [кол-во звонков]
FROM (Абоненты INNER JOIN Телефоны ON Абоненты.[Номер абонента] = Телефоны.[Номер абонента]) INNER JOIN Разговоры ON Телефоны.[Номер телефона] = Разговоры.[Номер телефона]
WHERE (((Month([Дата разговора]))=3))
GROUP BY Телефоны.[Номер телефона], Абоненты.[ФИО абонента]
)
А нужно и фамилию и номер тел
dumka (2008-04-22 10:26:00) [13]Я может не понял, это вот так
SELECT Телефоны.[Номер телефона], Абоненты.[ФИО абонента], Max(Count(Разговоры.[Номер разговора])) AS [кол-во звонков]FROM (Абоненты INNER JOIN Телефоны ON Абоненты.[Номер абонента] = Телефоны.[Номер абонента]) INNER JOIN Разговоры ON Телефоны.[Номер телефона] = Разговоры.[Номер телефона]
WHERE (((Month([Дата разговора]))=3))
GROUP BY Телефоны.[Номер телефона], Абоненты.[ФИО абонента]
dumka (2008-04-22 10:24:00) [14]
> Т.е. ты делал точно правильно, а оно все равно не работает?
Невозможно использовать статистические функции в выражении
> Max(Count
Anatoly Podgoretsky (2008-04-22 10:23:00) [15]> dumka (22.04.2008 10:12:04) [4]
Странно, в прошлый раз было делала
Sergey13 (2008-04-22 10:20:00) [16]> [4] dumka (22.04.08 10:12)
> Я это делал, не работает
Т.е. ты делал точно правильно, а оно все равно не работает?
dumka (2008-04-22 10:12:00) [17]
> Eсли же только лидера, то Max(Count
Я это делал, не работает
dumka (2008-04-22 10:11:00) [18]
> order by [кол-во звонков] desc
Не поможет, нужно выбрать одну запись
Anatoly Podgoretsky (2008-04-22 10:11:00) [19]> dumka (22.04.2008 10:02:00) [0]
ORDER BY Count(...
Eсли же только лидера, то Max(Count
easy (2008-04-22 10:09:00) [20]order by [кол-во звонков] desc