Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
15-1138618567
Ega23
2006-01-30 13:56
2006.02.19
Народ, а у вас всегда так?


2-1138268319
kull
2006-01-26 12:38
2006.02.19
Задача достать ссылки из html страницы


4-1133766431
alex_1234
2005-12-05 10:07
2006.02.19
"Обрыв" модема ???


2-1138916110
san6
2006-02-03 00:35
2006.02.19
Может подскажет кто-нибудь?


2-1139040100
Julia
2006-02-04 11:01
2006.02.19
Ошибка на Locate





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский