![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как подсчитать количество неодинаковых записей в датасете?
kreyl © (2005-12-21 15:10:00)Есть АДО датасет вида:
a b c
0 0 1
0 0 2
0 1 5
0 2 4
0 2 8
0 2 3
Нужно посчитать количество неодинаковых записей в колонке два.
Будь то MSSQL, я бы написал SELECT COUNT(DISTINCT b) FROM...,
но как это сделать в датасете?
Курдль (2005-12-21 17:25:00) [1]
> kreyl (21.12.05 16:25) [10]
Странное упорство... Как ты хочешь решить задачу иначе, чем перебором записей?
Найдя волшебный недокументированный метод, который все сделает?
Переходи тогда на Вижуал Кролика: http://msdn.microsoft.com/library/rus/default.asp?url=/library/RUS/cpref/html/frlrfsystemdatadatatableclassselecttopic.asp
Reindeer Moss Eater (2005-12-21 16:39:00) [2]Тебе еще в первом посте дали ответ
kreyl (2005-12-21 16:25:00) [3]И всё-таки, как быть с датасетом? Упражняться в SQL - это весело, но задача ставилась иначе :-)
Может, как-то подключить агрегатные поля?
sniknik (2005-12-21 16:07:00) [4]SELECT Count(*) FROM (SELECT DISTINCT b FROM таблица)
kreyl (2005-12-21 16:06:00) [5]2 unknown
Этот запрос выдаст количество записей, встречающихся только один раз.
Правильный запрос выглядит так:
SELECT COUNT(*) FROM
(
SELECT count (b)
FROM Table
GROUP BY b
)
alex_*** (2005-12-21 16:05:00) [6]много хочешь от DataSet. Это же не БД, чтоб SQL поддерживать
unknown (2005-12-21 15:59:00) [7]Может так?
select count(b) from ...
group by b
having count (b)=1
kreyl (2005-12-21 15:52:00) [8]2 Desdechado
Сорри, не понял вопроса.
Есть таблица в аксессе, примерно такого вида, как я написал. Примерно - потому что там есть еще пара текстовых полей. Таблица вся запихивается в датасет, и дальше с ней начинается работа.
kreyl (2005-12-21 15:48:00) [9]2 Sergey13
Данные получены из аксесса. Я пользовался борландской демкой ADO Briefcase: открывается подключение к базе, считываются данные в датасет (сделал через SQL запрос), подключение закрывается. Потом данные из датасета используются в различных местах; заранее его отгруппировать нельзя.
Есть, конечно, вариант - в процессе скачивания данных получить отдельным запросом это количество; но, во-первых, датасет в процессе работы будет меняться (и нужно будет получать оперативное количество), во-вторых аксесс не умеет COUNT(DISTINCT ...)
2 alex_
Оно, конечно, да, но хочется ведь как-то изящнее :-)
Desdechado (2005-12-21 15:36:00) [10]> записи в колонке
это что-то таблично-вложенное?
Sergey13 (2005-12-21 15:29:00) [11]2 kreyl (21.12.05 15:10)
А откуда дровишки то? В смысле данные в датасете?
alex_*** (2005-12-21 15:13:00) [12]отсортируй по ним и в цикле пробегись