Выбрать неповторяющиеся записи из рекордсета ADO
От: _Oswald_ Украина  
Дата: 04.04.07 17:26
Оценка:
Есть некоторые данные, которые нужно выбрать в ADODB.Recordset.

И есть поле, с повторяющимися значениями (время, например).
Можно ли сделать выборку (фильтр?) аналогично запросу "SELECT DISTINCT ... ", но уже в самом рекордсете и выбрать неповторяющиеся значения одного из полей в выборке?

Есть, конечно, простое решение, — предварительно сделать дополнительный запрос и получить список неповторяющихся значений, в отдельном рекордсете, но вот хотелось бы это одним запросом, а не двумя, т.к. реально таких запросов может набраться существенно больше 2-х, и думаю, что неэффективно как-то получится.

Спасибо.
O(.,.)O
Re: Выбрать неповторяющиеся записи из рекордсета ADO
От: _Oswald_ Украина  
Дата: 05.04.07 10:08
Оценка:
Здравствуйте, _Oswald_, Вы писали:

_O_>Можно ли сделать выборку (фильтр?) аналогично запросу "SELECT DISTINCT ... ", но уже в самом рекордсете и выбрать неповторяющиеся значения одного из полей в выборке?


Это.. вопрос глупый или не знает никто?

Подскажите, плиз.
O(.,.)O
Re: Выбрать неповторяющиеся записи из рекордсета ADO
От: Notung Россия  
Дата: 05.04.07 10:40
Оценка:
Здравствуйте, _Oswald_, Вы писали:

_O_>Есть некоторые данные, которые нужно выбрать в ADODB.Recordset.


_O_>И есть поле, с повторяющимися значениями (время, например).

_O_>Можно ли сделать выборку (фильтр?) аналогично запросу "SELECT DISTINCT ... ", но уже в самом рекордсете и выбрать неповторяющиеся значения одного из полей в выборке?

_O_>Есть, конечно, простое решение, — предварительно сделать дополнительный запрос и получить список неповторяющихся значений, в отдельном рекордсете, но вот хотелось бы это одним запросом, а не двумя, т.к. реально таких запросов может набраться существенно больше 2-х, и думаю, что неэффективно как-то получится.


_O_>Спасибо.



Я так полагаю, Вам надо комбо боксы заполнить, чтобы юзер мог выбирать из них и потом фильтровать?
По идее, подобные штучки не должны входить в задачи Recordset объекта.
Тут либо дизайн базы надо менять так, что отдельные таблицы будут хранить уникальные значения, а уже основная, с датами, — их ИД. А потом уже выполнять N "лёгких" запросов. Либо N запросов выполнять над основной таблицей. Либо уже в коде приложения вводить массивы и загонять туда уникальные значения из общей выборки.
Re: Выбрать неповторяющиеся записи из рекордсета ADO
От: surovi  
Дата: 06.04.07 11:26
Оценка:
Если тебе надо исключить строки, в которых нужное поле встречается больше чем один раз,
то можно сделать запрос на выборку плюс одно поле делаешь Count(*) и группируешь по этому полю и самое главное делаешь HAVING BY Count(*) > 1
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.