Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 22:04   #1
viperrr
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 28
Вопрос sq запрос

я составил код, чтобы при выборе определенной улицы с помощью запроса выводились записи по этим улицам из телефонной книги.. А как составить следующий запрос, чтобы он из этого запроса выбирал по данной улице дом с наибольшим кол-вом телефонов.?
ADOquery1.Close;
ADOquery1.SQL.Clear;
ADOquery1.SQL.Add('Select * from phonetable where street=''' + ComboBox1.Text + ''';');
ADOquery1.Open;

{form1.DataSource1.DataSet:=form1.A DOQuery1; }
Если ты знаешь еще хоть одну рифму к слову "ЗВЕЗДА", то ты настоящий поэт!(рифма должна быть в единственном числе)
viperrr вне форума Ответить с цитированием
Старый 04.06.2009, 22:53   #2
5naip
Форумчанин
 
Аватар для 5naip
 
Регистрация: 05.10.2007
Сообщений: 536
По умолчанию

Думаю,запрос примерно таков
Код:
Select *
from phonetable
where
	street=''' + ComboBox1.Text + '''
	and dom=(select max(dom) where street=''' + ComboBox1.Text + ''' );
rocklistener...
5naip вне форума Ответить с цитированием
Старый 04.06.2009, 23:41   #3
viperrr
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 28
По умолчанию

у меня выдает ошибку синтаксиса, а оператор max(dom) - находит максимальное значение этого поля?
Если ты знаешь еще хоть одну рифму к слову "ЗВЕЗДА", то ты настоящий поэт!(рифма должна быть в единственном числе)
viperrr вне форума Ответить с цитированием
Старый 04.06.2009, 23:45   #4
viperrr
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 28
По умолчанию

а мне надо найти наибольшее количество записей с одинаковым полем dom... в этом у меня и загвоздка..
ps и если max - находит максимальное значение поля то надо перевод из строки в число сделать здесь же
Если ты знаешь еще хоть одну рифму к слову "ЗВЕЗДА", то ты настоящий поэт!(рифма должна быть в единственном числе)
viperrr вне форума Ответить с цитированием
Старый 04.06.2009, 23:53   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

5naip, не-а... к сожалению, Вы ошибаетесь, max(dom) вернёт дом с максимальным номером! (а не с максимальным количеством телефонов). хотя ход мысли правильный

viperrr, СУБД свою укажите...
и не дублируйте, пожалуйста, одинаковые темы в разных разделах!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.06.2009, 00:01   #6
viperrr
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 28
По умолчанию

работаю из delphi c access через ADO
Если ты знаешь еще хоть одну рифму к слову "ЗВЕЗДА", то ты настоящий поэт!(рифма должна быть в единственном числе)
viperrr вне форума Ответить с цитированием
Старый 05.06.2009, 00:11   #7
5naip
Форумчанин
 
Аватар для 5naip
 
Регистрация: 05.10.2007
Сообщений: 536
По умолчанию

мда,и действительно в условие не вчитался
вот, думаю исправлюсь...
Код:
select *
from phonetable
where
  street=''' + ComboBox1.Text + '''
  and dom =(select dom
                  from (select top 1 count(dom) as a,dom
                          from phonetable
                          where street=''' + ComboBox1.Text + ''';
                          group by dom
			  order by count(dom)))
проверить никак не могу
rocklistener...

Последний раз редактировалось 5naip; 05.06.2009 в 00:21.
5naip вне форума Ответить с цитированием
Старый 05.06.2009, 00:33   #8
viperrr
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 28
По умолчанию

спасибо, сейчас проверю, отпишусь
как то через раз работает, в записях где 1-2 дома, ничего не выводит, а через некоторое время слетает и выдает ошибку=(
"данный подчиненный вопрос должен возвращать не более одной записи"
Если ты знаешь еще хоть одну рифму к слову "ЗВЕЗДА", то ты настоящий поэт!(рифма должна быть в единственном числе)

Последний раз редактировалось viperrr; 05.06.2009 в 00:59.
viperrr вне форума Ответить с цитированием
Старый 05.06.2009, 00:36   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

5naip, с Вашего позволения, я бы чуть-чуть подкорректировал Ваш вариант так:
Код:
select *
from phonetable
where
  street=''' + ComboBox1.Text + '''
  and dom in (select top 1 dom
                          from phonetable
                          where street=''' + ComboBox1.Text + ''';
                          group by dom
                          order by count(dom) desc)
p.s. проверить есть где... но поздно уже... спать пора..
доверим проверку кода автору вопроса
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.06.2009, 02:00   #10
viperrr
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 28
По умолчанию

благодарю=) огрООООмное спасибо, очень выручили, просто я с sql тока начинаю работать, и пока что бум-бум=)
но все еще предстоит=)
Если ты знаешь еще хоть одну рифму к слову "ЗВЕЗДА", то ты настоящий поэт!(рифма должна быть в единственном числе)

Последний раз редактировалось viperrr; 05.06.2009 в 02:09. Причина: уточнение
viperrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос Artruman БД в Delphi 10 05.05.2009 18:47
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
Запрос Инночка БД в Delphi 1 01.05.2008 23:46
Запрос wolfik0 БД в Delphi 1 23.04.2008 21:55