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