Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: поиск повторений
 
 автор: Igor_1974   (02.09.2013 в 17:06)   личное сообщение
128 Кб.
 
 

Всем привет.
Надо найти повторы.

tblResult
fldDate
fldPara
fldTeacher
fldTeacher

2 последних поля берут свои значения из таблицы.
надо найти повторы, где например
дата совпадает пара совпадает тичер совпадает
дата совпадает пара совпадает тичер2 совпадает
дата совпадает пара совпадает тичер совпадает с тичер2 (одинаковая дата, одинаковая пара, разный предмет)

  Ответить  
 
 автор: snipe   (03.09.2013 в 06:48)   личное сообщение
14 Кб.
 
 

Так? =>
можно конечно обойтись без запроса1
но мне показалось что так будет доходчивее

  Ответить  
 
 автор: Igor_1974   (03.09.2013 в 11:43)   личное сообщение
 
 

честно - я не понял... записи то разные. в одной учитель = Петров, во второй учитель2 = Петров.

Я ее уже решил, спасибо за ответы.

  Ответить  
 
 автор: snipe   (04.09.2013 в 05:30)   личное сообщение
 
 

есть стандартный запрос - повторяющиеся записи
в простых случаях можно пользоваться им
в более сложных случаях (и не только с повторяющимися записями) можно использовать подзапросы
принцип на примере
Select a1.*
From (
Select tbl.* From tbl
) as a1

т.е. в запросе старшего уровня используется не таблица или имя сохраненного запроса, а инструкция SQL
сколько может быть уровней подзапросов - не знаю, у меня получалось штук 10 воткнуть, дальше не пробывал - не было необходимости.

В примере который я вам послал используется 1 подзапрос и 1 сохраненный запрос
Тут главное принцип

а принцип такой - собирам значения полей в одно слово
дата & пара & тичер (столбец Совпадение1 в запросе)
после этого делаем запрос в котором группируем значения в столбце совпадение1 и считаем количество уникальных значений - отображаем только те у которых совпадений больше или равно 2 -т.е. совпадают (это подзапрос а1)
теперь имея список повторов делаем запрос и выбираем нужные значения
все

P.S. может я условие задания не правильно понял

  Ответить  
 
 автор: Igor_1974   (04.09.2013 в 12:35)   личное сообщение
 
 

Если вложенных запросов будет много, то такой запрос очень долго обрабатывается.
Решил (подсказали) вот так (сохранен как скл инструкция):

SELECT T1.fldDate, T1.fldPara, T1.id AS id_1, T1.fldTeacher AS fldTeacher_1, T1.fldTeacher2 AS fldTeacher2_1, T1.fldPredmet AS fldPredmet_1, T2.id AS id_2, T2.fldTeacher AS fldTeacher_2, T2.fldTeacher2 AS fldTeacher2_2, T2.fldPredmet AS fldPredmet_2
FROM tblResult AS T1 INNER JOIN tblResult AS T2 ON (T1.id<T2.id) AND ((T1.fldTeacher = T2.fldTeacher) OR (T1.fldTeacher2 = T2.fldTeacher2) OR
(T1.fldTeacher = T2.fldTeacher2) OR (T1.fldTeacher2 = T2.fldTeacher)) AND (T1.fldPara = T2.fldPara) AND (T1.fldDate = T2.fldDate);

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList