Есть некоторые данные, которые нужно выбрать в ADODB.Recordset.
И есть поле, с повторяющимися значениями (время, например).
Можно ли сделать выборку (фильтр?) аналогично запросу "SELECT DISTINCT ... ", но уже в самом рекордсете и выбрать неповторяющиеся значения одного из полей в выборке?
Есть, конечно, простое решение, — предварительно сделать дополнительный запрос и получить список неповторяющихся значений, в отдельном рекордсете, но вот хотелось бы это одним запросом, а не двумя, т.к. реально таких запросов может набраться существенно больше 2-х, и думаю, что неэффективно как-то получится.
Спасибо.
Здравствуйте, _Oswald_, Вы писали:
_O_>Можно ли сделать выборку (фильтр?) аналогично запросу "SELECT DISTINCT ... ", но уже в самом рекордсете и выбрать неповторяющиеся значения одного из полей в выборке?
Это.. вопрос глупый или не знает никто?
Подскажите, плиз.
Здравствуйте, _Oswald_, Вы писали:
_O_>Есть некоторые данные, которые нужно выбрать в ADODB.Recordset.
_O_>И есть поле, с повторяющимися значениями (время, например).
_O_>Можно ли сделать выборку (фильтр?) аналогично запросу "SELECT DISTINCT ... ", но уже в самом рекордсете и выбрать неповторяющиеся значения одного из полей в выборке?
_O_>Есть, конечно, простое решение, — предварительно сделать дополнительный запрос и получить список неповторяющихся значений, в отдельном рекордсете, но вот хотелось бы это одним запросом, а не двумя, т.к. реально таких запросов может набраться существенно больше 2-х, и думаю, что неэффективно как-то получится.
_O_>Спасибо.
Я так полагаю, Вам надо комбо боксы заполнить, чтобы юзер мог выбирать из них и потом фильтровать?
По идее, подобные штучки не должны входить в задачи Recordset объекта.
Тут либо дизайн базы надо менять так, что отдельные таблицы будут хранить уникальные значения, а уже основная, с датами, — их ИД. А потом уже выполнять N "лёгких" запросов. Либо N запросов выполнять над основной таблицей. Либо уже в коде приложения вводить массивы и загонять туда уникальные значения из общей выборки.
Если тебе надо исключить строки, в которых нужное поле встречается больше чем один раз,
то можно сделать запрос на выборку плюс одно поле делаешь Count(*) и группируешь по этому полю и самое главное делаешь HAVING BY Count(*) > 1