![]() |
|
|
![]()
|
|
| RinOSpro |
|
|||
|
Unregistered |
Помогите пожалуста, написать SQL запрос.
есть таблица "Контролеры" КодКонтр | КолвоАбонентов | 1 | | 2 | | 3 | | и таблица "Абоненты" НомерАб | Абонент | КодКонтр | 1 |иванов | 1 | 2 |петров | 2 | 3 |сидоров | 1 | 4 |козлов | 1 | 5 |березов | 3 | 6 |осинов | 3 | Нужно в поле Контролеры.КолвоАбонентов посчитать сколько абонентов на каждом контролёре если вот сейчас в ручную посчитать то получиться что КодКонтр | КолвоАбонентов | 1 | 3 | 3 абонентов на этом контролере 2 | 1 | 1 абонент на этом контролере 3 | 2 | 2 абонентов на этом контролере Я написал процедуру чтобы считало перебором recordcount но это сплошной глюк работает через раз. Помогите пожалуста написать SQL запрос! Добавлено через 52 секунды таблица Абоненты связана с таблицей Контролеры по полю КодКонтр |
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
Зачем нужна таблица Контроллеры? Это же результат группировки таблицы Абоненты,
а запрос такой
|
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
В таблице контролеры храняться записи о контролерах. каждый контролер отвечает за своего абонента для того чтобы получить доступ к абоненту нужно сначало выбрать контролера за которым этот абонент закреплен.Savek - этот запрос не подходит мне нужно почитать сколько абонентов на каждом контролере.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
RinOSpro, Ты походу сам еще не понимаешь, что именно тебе надо... запрос, который написАл Savek, как раз СЧИТАЕТ количество абонентов "на каждом контролере".
Может, тебе надо еще ЗАПИСАТЬ эти подсчитанные данные в таблицу "Контролеры"? Или еще что-то? ну так сформулируй, что же тебе нужно-то... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Да знаю что мне надо вот как я уже делаю:
Добавлено через 1 минуту и 42 секунды Может, тебе надо еще ЗАПИСАТЬ эти подсчитанные данные в таблицу "Контролеры"? да именно это и нужно |
|||
|
||||
| Savek |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
|
||||
|
|||||
| Anark1 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: 1 Всего: 11 |
Насколько я вижу тут и не идет речи об SQL. Такой код пригоден для малого количества записей. Методы Locate, SetKey и другие просто перебирают весь рекордсет. А если в таблице >1 000 000 записей ? Их допустимо использовать уже после выборки SQL. |
||||
|
|||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Вот так на SQL в БД Oracle работает.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
Vas, какой insert? Ему update нужен.
Возможно подойдет
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
||||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
думаю, что может
|
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
||||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
а ты попробуй на FireBird`е
|
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
Да... Сколько баз, столько диалектов, не думал что могут быть такие принципиальные отличия.
Попробовать не могу нет FB под рукой Кстати автор до сих пор не признался с какой базой работает? Это сообщение отредактировал(а) Savek - 12.9.2007, 16:18 |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
Все вопросы к M$ возможно они когда-нибудь доделают Access до вида нормальной СУБД хотя зачем им это? есть же MSSQL ... -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |