Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выборка повторов из1 таблицы, + куча ньюансов 
:(
    Опции темы
Ivushka
Дата 25.1.2006, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: нет
Всего: 2



Помогите исправить ошибки ламеров!!!

таблица содержит ID ФИО и др.данные
только народ навводил одних и тех же людей... причем криво например фамилии и имена совпадают а отчества "Олегович" и "О." и тд...

если делать группировку только по фамилии попадаются однофамильцы а как еще выбрать не соображу(((

к тому же нужно сделать так
из этого
id фио
1 а
2 р
3 у
4 а
5 у
6 а
7 й
выбрать
id фио
1 а
4 а
6 а
2 у
5 у


помоготе!







--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
ТоляМБА
Дата 25.1.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Цитата(Ivushka @ 25.1.2006, 13:28 Найти цитируемый пост)

таблица содержит ID ФИО и др.данные

Цитата(Ivushka @ 25.1.2006, 13:28 Найти цитируемый пост)

если делать группировку только по фамилии попадаются однофамильцы

Так, подожди, у тебя одно поле ФИО или 3 поля: Ф, И, О или ты как-то по другому отсекаешь только фамилию.
Цитата(Ivushka @ 25.1.2006, 13:28 Найти цитируемый пост)

причем криво

Офигительно криво. Ну ладно
Цитата(Ivushka @ 25.1.2006, 13:28 Найти цитируемый пост)

"Олегович" и "О."

А если там будут три Петров Сидор ["Анатольевич", "Александрович", Алексеевич"] а в сокращенном просто "А", как будешь выбирать? По каким полям можно еще идентефицировать (ну например есть там дата рождения или нет - наврядли эти три Сидора в один день родились (отчества-то разные)). И Еще у тебя только с отчествами такие грабли или с именами тоже?
Цитата(Ivushka @ 25.1.2006, 13:28 Найти цитируемый пост)
к тому же нужно сделать так

А где условие выборки smile
Не сочти за прикол, но по разнице между начальными данными и конечными можно написать только так:
Код

Select id, фио
from table1
where фио='a' or фио='у'
order by фио, id

либо
Код

Select id, фио
from table1
where фио in ('a', 'у')
order by фио, id


Это сообщение отредактировал(а) ТоляМБА - 25.1.2006, 13:51
PM   Вверх
Ivushka
Дата 25.1.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: нет
Всего: 2



Цитата(ТоляМБА @ 25.1.2006, 13:50 Найти цитируемый пост)
Так, подожди, у тебя одно поле ФИО или 3 поля: Ф, И, О

3 поля: фамилия, имя, отчество

Цитата(ТоляМБА @ 25.1.2006, 13:50 Найти цитируемый пост)
Офигительно криво.

я сама убила бы только они все далеко)

Цитата(ТоляМБА @ 25.1.2006, 13:50 Найти цитируемый пост)
А если там будут три Петров Сидор ["Анатольевич", "Александрович", Алексеевич"] а в сокращенном просто "А", как будешь выбирать? По каким полям можно еще идентефицировать (ну например есть там дата рождения или нет - наврядли эти три Сидора в один день родились (отчества-то разные)).

в том то и прикол!!! остальные поля не обязательные! и в основном пустые

Цитата(ТоляМБА @ 25.1.2006, 13:50 Найти цитируемый пост)
И Еще у тебя только с отчествами такие грабли или с именами тоже?

с именами тоже)))
асть еще такое при одинаковых ФИО

имя отчество
А.В. [пусто]
А. В.
Цитата(ТоляМБА @ 25.1.2006, 13:50 Найти цитируемый пост)
А где условие выборки

Выбрать строки с повторяющимися ФИО но разными ID

--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
ТоляМБА
Дата 25.1.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Цитата(Ivushka @ 25.1.2006, 14:03 Найти цитируемый пост)

Выбрать строки с повторяющимися ФИО но разными ID

Код

Select id, фио
from table1
group by фио, id
having count(фио)>1
order by фио, id

having count(фио)>1 - значит что запись встречается больше одного раза то есть повторяется
order by фио, id - эт не помню где ставить перед или после having, проверь сама плз.

А по первому вопросу даже и не знаю что ответить, если их нельзя четко различить то либо нанять киллера для юзеров или к гадалке идти (не сочти за издевательство)
PM   Вверх
Akina
Дата 25.1.2006, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Ivushka
Настоятельная рекомендация.

Письменно (слышишь - ПИСЬМЕННО) сообщить руководству, что на основе занесенных в БД данных задача НЕРЕШАЕМА. Для ее решения НЕОБХОДИМО потребовать от структуры, осуществляющей ввод данных, произвести выверку/корректировку БД, сверив содержащиеся там данные с данными на твердых носителях (в бумаге) и исправив информацию в БД в соответствии с теми требованиями, которые ты прилагаешь.
В приложении четко описАть заполнение каждого поля БД отдельно - регистры, пробелы, знаки препинания, порядок следования, используемые словари и т.п.

Эту бумагу надо довести до состояния, когда она превратится в приказ руководства на проведение данной работы, а ты по этому приказу - начальник, координатор, куратор, госприемка и раздаватель люлей.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ivushka
Дата 25.1.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: нет
Всего: 2



Цитата(ТоляМБА @ 25.1.2006, 14:22 Найти цитируемый пост)
А по первому вопросу даже и не знаю что ответить

а надо именно оно(((

а этот запрос у меня уже написан
надо туда впишнуть типа того

Код

 Count(SirName) >1 and (Count(name[0])>1 and (Count(SecondName[0])>1 or IsNull(SecondName)) )

Под name[0] и SecondName[0] я подразумеваю 1-й символ поля (только как его найти????)
Добавлено @ 14:35
Akina я бы с удовольствием...
только мне как раз надо предоставить выборку максимально приемлемую на примере которой будет делаться то что ты предлогаеш
--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
Ivushka
Дата 25.1.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: нет
Всего: 2



Сделала через 3 запроса и то не все нормально получилось

запрос 4
Код

SELECT Ref_VIP.Surname, First(Ref_VIP.Name) AS [First-Name], First(Ref_VIP.SecondName) AS [First-SecondName]
FROM Ref_VIP
GROUP BY Ref_VIP.Surname
HAVING (((Count(Ref_VIP.Surname))>1));


запрос 5
Код

SELECT Ref_VIP.Surname, First(Ref_VIP.Name) AS [First-Name1], First(Ref_VIP.SecondName) AS [First-SecondName1], Left([Ref_VIP].[Name],1) AS Выражение1, Left([Ref_VIP].[SecondName],1) AS Выражение2
FROM Запрос4 INNER JOIN Ref_VIP ON Запрос4.Surname = Ref_VIP.Surname
GROUP BY Ref_VIP.Surname, Left([Ref_VIP].[Name],1), Left([Ref_VIP].[SecondName],1)
HAVING (((Count(Left([Ref_VIP].[Name],1)))>1));


запрос 6
Код

SELECT Ref_VIP.*
FROM Запрос5 LEFT JOIN Ref_VIP ON Запрос5.Surname = Ref_VIP.Surname
WHERE (((Left([Ref_VIP].[Name],1))=[Запрос5]![Выражение1]) AND ((Left([Ref_VIP].[SecondName],1))=[Запрос5]![Выражение2] Or (Left([Ref_VIP].[SecondName],1))="" Or (Left([Ref_VIP].[SecondName],1))="-" Or (Left([Ref_VIP].[SecondName],1))="0"));


может можно было и поще но голова уже не варит

Это сообщение отредактировал(а) Ivushka - 25.1.2006, 17:53
--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.