Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 9

Сравнение строк по определенным столбцам

14.05.2009, 17:07. Показов 6148. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, задачка тут у меня возникла..к сожалению забыл институтский курс помню там было и макросы писали..умом чувствую что не сложно, а как не могу сделать..
ну суть в том.. имеется таблица простая..в ней несколько столбцов со значениеми и много строк.

Условие такое: нужно найти одинаковые строки, вернее строки должны совпадать по значению по 4-5 столбцам. блин как то выразился не так. короче если у сравниваемых строк таблицы совпадают значения в столбцах например 1 ,4,5,8,9,11 то считаем что эти строки одинаковые (даже если в других столбах они не совпадают) и их нужно либо выделить цветом либо что то еще сделать..
в таблице могут быть несколько разных групп строк, которые совпадут.
Далее человек смотрит на совпавшие строки в группе и удаляет их кроме одной . Далее смотрит в другую группу совпавших строк и там тоже удаляет строки кроме одной . Потом оставшиеся данные после анализа передать в эксель (можно ли это с делать через кнопку , ане через файл импорт итд.)
Как это можно реализовать? спасибо. С меня причитается если что

блин сорри базы как таковой счас под рукой нет..
но смысл такой
на предприятии испытывают образцы:
пишут в столбцах марку , плавку, номер образца, время, свойства.
потом испытывают образцы и записывают результат.
если образец при испытании поломался то берут снова образец и снова его испытывают итд пока образец не выдержит испытание (снова испытать могут и завтра и послезавтра в любое время)
типа
марка плавка номер время свойства результат
12b 1234 5 12.11 про 67
23 И 1234 6 12.12 пар 87
12b 1357 4 12.11 ghj 87
12b 1234 6 13.11 про 67
12b 1357 4 15.11 пар 87
тут надо выбрать образцы по совпадению марки плавки номера свойства и резульат (время пофиг ) как видим это 1 и 4 строка...
и 3 и 5 строка..
могло и больше быть совпадений
потом надо вручную удалить из этих групп образцы и оствить один образец в каждой из групп совпавшей
в итоге должна быть таблица
12b 1234 5 12.11 про 67
23 И 1234 6 12.12 пар 87
12b 1357 4 12.11 ghj 87
ее в ексель перекидываем потом

то есть мы удалили из таблицы 4 и 5 строку
так более менее понятно?
Просто строк больше будет под 100 или более вручную сложно искать совпадение.
спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.05.2009, 17:07
Ответы с готовыми решениями:

Можно ли упорядочить в Listbox - е по определенным столбцам
Всем доброго дня. Имеется ListBox. RowSource у Listbox - а список значений. Содержать три столбца. Можно ли упорядочить данные в Listbox...

Сравнение двух StringGrid-ов по определенным столбцам
Доброго времени суток. Сейчас буду пробовать объяснить, что я хочу) Значит так... есть у меня 2 excel'овских файлов, я их загружаю в...

Поисковик по определённым столбцам таблицы
Нужен поиск по таблице в конкретном столбце, например пишу в input: Иванов, остаётся только строка c Ивановым, остальные убираются ...

19
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
14.05.2009, 19:58
1. Для
Цитата Сообщение от vadimkim Посмотреть сообщение
найти одинаковые строки
делается запрос
SQL
1
2
3
4
5
6
7
8
SELECT *
FROM Table1 t1
INNER JOIN Table2 t2
ON T1.Field1=T2.Field1
AND T1.Field4=T2.Field4
AND T1.Field5=T2.Field5
..................
AND T1.Field11=T2.Field11
Добавлено через 7 минут 46 секунд
2. про
Цитата Сообщение от vadimkim Посмотреть сообщение
удаляет
откуда конкретно удалять из Т1, или Т2 или из обеих?

Добавлено через 4 минуты 3 секунды
3. про ЕХсель и кнопку
Visual Basic
1
DoCmd.OutputTo acOutputTable, "оставшиеся_данные", acFormatXLS, "путь\имя_файла.xls", True
Добавлено через 32 минуты 41 секунду
из письма
Цитата Сообщение от vadimkim
но смысл такой
на предприятии испытывают образцы:
пишут в столбцах марку , плавку, номер образца, время, свойства.
потом испытывают образцы и записывают результат.
<......>
тут надо выбрать образцы по совпадению марки плавки номера свойства и резульат... как видим это 1 и 4 строка...
и 3 и 5 строка..
могло и больше быть совпадений
потом надо вручную удалить из этих групп образцы и оствить один образец в каждой из групп совпавшей
<...>
Просто строк больше будет под 100 или более вручную сложно искать совпадение.
спасибо.
а, нафиг, вообще удалять, можно просто группировку сделать по нужным полям (причем выводить только требуемые поля)
и запрос в ехсель отправить
1
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 9
14.05.2009, 20:06  [ТС]
ну а как вы представляете группировать? если я должен в таблице найти все совпадающие между собой образцы и из них выбрать только один из каждой групп совпавших, а остальные не прошедшие мой контроль убрать из таблицы.
а если есть образцы которые не совпадают ни с кем то их не надо трогать, а оставить в таблице
. сорри мож я не понимаю .....к сожалению только вот через 15 лет почти пришлось заново этим заняться.
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
14.05.2009, 20:09
а зачем удалять вообще?

Добавлено через 1 минуту 30 секунд
а, в ехсель не таблицу кидать, а запрос (с группировкой).
1
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 9
15.05.2009, 10:52  [ТС]
Здавствуйте, я извиняюсь..уточнение..такое.
оказывается надо чтобы все строки в таблице полностью совпадали и отображалось потом в таблице только одна строчка из каждой из групп совпавших. (то есть если в таблице есть 3 строчки полностью одинаковые между собой, то в таблице отображать только одну строку из трех)
То есть в ИТОГЕ в таблице будут строчки котрорые не совпали ни с кем и строчки которые совпали с друг другом, но по одной строке от каждой групп совпавших.
Это нааверно проще?
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.05.2009, 11:12
Цитата Сообщение от Бурундук Посмотреть сообщение
можно просто группировку сделать по нужным полям (причем выводить только требуемые поля) и запрос в ехсель отправить
можно еще этот же запрос всунуть в новую таблицу (INSERT INTO)
потом старую почистить (DELETE * FROM) и из новой вставить в старую.
но я предполагаю, что старую лучше хранить как архив.
а, новую вообще не делать ), только запрос
про полностью одинаковые строки: в Аксе (наскоко я помню) есть визард для создания запроса поиска совпадений.
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 9
15.05.2009, 12:10  [ТС]
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SELECT Статистика.[Дата / Test DATE], Статистика.[Испытательная машина № 171420 / Test Machine # 171420],
Статистика.[Идентификационный номер пользователя / USER Identification #], Статистика.[№ Партии / Lot №],
Статистика.[№ Заказа / ORDER], Статистика.[№ Плавки / Melt №], Статистика.[Сплав и его состояние / Alloy AND Temper],
Статистика.[Состояние поставки / Temper Test], Статистика.[Размер,мм / Dimensions,mm],
Статистика.[Вид продукции / Discription OF Goods], Статистика.[НД на продукцию / Test standard],
Статистика.[НД на метод испытания / Product standard], Статистика.[Место вырезки образца / Sample Location],
Статистика.[Направление вырезки образца / Sample Direction], Статистика.[№ Образца / Test №],
Статистика.[Толщина / Thickness], Статистика.Размерность, Статистика.[Ширина / Width],
Статистика.Размерность1, Статистика.[Диаметр / Diameter], Статистика.Размерность2,
Статистика.[Площадь поперечного сечения / Sample area], Статистика.Размерность3,
Статистика.[Тип образца / TYPE sample], Статистика.[Модуль упругости / Modulus Elasticity],
Статистика.Размерность4, Статистика.[Врем сопр / Ultimate Strength], Статистика.Размерность5,
Статистика.[Предел тек усл / Yield strength], Статистика.Размерность6, Статистика.[Максимальная нагрузка / MAX loading],
Статистика.Размерность7, Статистика.[Нагрузка текучести / Loading fluidity], Статистика.Размерность8,
Статистика.[А % / Elongation %], Статистика.[Индикатор проходимости / Pass Indicator],
Статистика.[Примечание / Comment]
FROM Статистика
GROUP BY Статистика.[Дата / Test DATE], Статистика.[Испытательная машина № 171420 / Test Machine # 171420],
Статистика.[Идентификационный номер пользователя / USER Identification #], Статистика.[№ Партии / Lot №],
Статистика.[№ Заказа / ORDER], Статистика.[№ Плавки / Melt №], Статистика.[Сплав и его состояние / Alloy AND Temper],
Статистика.[Состояние поставки / Temper Test], Статистика.[Размер,мм / Dimensions,mm],
Статистика.[Вид продукции / Discription OF Goods], Статистика.[НД на продукцию / Test standard],
Статистика.[НД на метод испытания / Product standard], Статистика.[Место вырезки образца / Sample Location],
Статистика.[Направление вырезки образца / Sample Direction], Статистика.[№ Образца / Test №],
Статистика.[Толщина / Thickness], Статистика.Размерность, Статистика.[Ширина / Width], Статистика.Размерность1,
Статистика.[Диаметр / Diameter], Статистика.Размерность2, Статистика.[Площадь поперечного сечения / Sample area],
Статистика.Размерность3, Статистика.[Тип образца / TYPE sample], Статистика.[Модуль упругости / Modulus Elasticity], 
Статистика.Размерность4, Статистика.[Врем сопр / Ultimate Strength], Статистика.Размерность5,
Статистика.[Предел тек усл / Yield strength], Статистика.Размерность6, Статистика.[Максимальная нагрузка / MAX loading],
Статистика.Размерность7, Статистика.[Нагрузка текучести / Loading fluidity], Статистика.Размерность8,
Статистика.[А % / Elongation %], Статистика.[Индикатор проходимости / Pass Indicator], Статистика.[Примечание / Comment];
вот этот запрос позволит сравнить строки и вытащить только то что мне нужно?
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.05.2009, 12:23

Не по теме:

это

Цитата Сообщение от vadimkim Посмотреть сообщение
Испытательная машина № 171420 / Test Machine # 171420
название поля?


не совсем так: если это все поля таблицы, то будут выведены все строки без совпадений. Если же нужно сравнение только по отдельным полям, то этот запрос не поможет
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 9
15.05.2009, 13:50  [ТС]
оказывается совпадение нужно по всем полям, кроме первого (код).
то есть нужно если в таблице есть дубли строк то не показывать дубли-показывать одну строку из дублей.
и показать в таблице все строки, которые были без дублей изначально и строки, которые остались после удаления дублей. я вам счас базу вышлю ок?
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.05.2009, 14:04

Не по теме:

у Вас какой акцесс? у мну 2000



Добавлено через 6 минут 48 секунд
Базу я Вашу открыл...
у вас поля слишком хитро названы:
1. все слеши, решетки и проценти лучше убрать.
2. все русские слова замените на английские
3. как можно короче имя поля пишите (Лучше все эти длинные названия засунуть в параметр Подпись поля)
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 9
15.05.2009, 14:05  [ТС]
[QUOTE=Бурундук;162277]

Не по теме:

у Вас какой акцесс? у мну 2000



у меня 2003
к сожалению менять не можем..данные в таблицу приходят от другой программы в таком виде
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.05.2009, 14:22
я тут подумал надо сделать еще одну таблицу с аналогичной структурой и написать следующий запрос
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
INSERT INTO Статистика2 ([Дата / Test DATE], [Испытательная машина № 171420 / Test Machine # 171420],
[Идентификационный номер пользователя / USER Identification #], [№ Партии / Lot №],
[№ Заказа / ORDER], [№ Плавки / Melt №], [Сплав и его состояние / Alloy AND Temper],
[Состояние поставки / Temper Test], [Размер,мм / Dimensions,mm],
[Вид продукции / Discription OF Goods], [НД на продукцию / Test standard],
[НД на метод испытания / Product standard], [Место вырезки образца / Sample Location],
[Направление вырезки образца / Sample Direction], [№ Образца / Test №],
[Толщина / Thickness], Размерность, [Ширина / Width],
Размерность1, [Диаметр / Diameter], Размерность2,
[Площадь поперечного сечения / Sample area], Размерность3,
[Тип образца / TYPE sample], [Модуль упругости / Modulus Elasticity],
Размерность4, [Врем сопр / Ultimate Strength], Размерность5,
[Предел тек усл / Yield strength], Размерность6, [Максимальная нагрузка / MAX loading],
Размерность7, [Нагрузка текучести / Loading fluidity], Размерность8,
[А % / Elongation %], [Индикатор проходимости / Pass Indicator],
[Примечание / Comment])
SELECT DISTINCT Статистика.[Дата / Test DATE], Статистика.[Испытательная машина № 171420 / Test Machine # 171420],
Статистика.[Идентификационный номер пользователя / USER Identification #], Статистика.[№ Партии / Lot №],
Статистика.[№ Заказа / ORDER], Статистика.[№ Плавки / Melt №], Статистика.[Сплав и его состояние / Alloy AND Temper],
Статистика.[Состояние поставки / Temper Test], Статистика.[Размер,мм / Dimensions,mm],
Статистика.[Вид продукции / Discription OF Goods], Статистика.[НД на продукцию / Test standard],
Статистика.[НД на метод испытания / Product standard], Статистика.[Место вырезки образца / Sample Location],
Статистика.[Направление вырезки образца / Sample Direction], Статистика.[№ Образца / Test №],
Статистика.[Толщина / Thickness], Статистика.Размерность, Статистика.[Ширина / Width],
Статистика.Размерность1, Статистика.[Диаметр / Diameter], Статистика.Размерность2,
Статистика.[Площадь поперечного сечения / Sample area], Статистика.Размерность3,
Статистика.[Тип образца / TYPE sample], Статистика.[Модуль упругости / Modulus Elasticity],
Статистика.Размерность4, Статистика.[Врем сопр / Ultimate Strength], Статистика.Размерность5,
Статистика.[Предел тек усл / Yield strength], Статистика.Размерность6, Статистика.[Максимальная нагрузка / MAX loading],
Статистика.Размерность7, Статистика.[Нагрузка текучести / Loading fluidity], Статистика.Размерность8,
Статистика.[А % / Elongation %], Статистика.[Индикатор проходимости / Pass Indicator],
Статистика.[Примечание / Comment]
FROM Статистика;
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 9
15.05.2009, 14:29  [ТС]
счас попробую .....

вот предложили такой вариант..он работает вроде..


SQL
1
2
3
4
5
6
DELETE *
FROM Статистика
WHERE Код NOT IN (
SELECT  MIN(Статистика.Код)
FROM Статистика
GROUP BY Статистика.[Дата / Test DATE], Статистика.[Испытательная машина № 171420 / Test Machine # 171420], Статистика.[Идентификационный номер пользователя / USER Identification #], Статистика.[№ Партии / Lot №], Статистика.[№ Заказа / ORDER], Статистика.[№ Плавки / Melt №], Статистика.[Сплав и его состояние / Alloy AND Temper], Статистика.[Состояние поставки / Temper Test], Статистика.[Размер,мм / Dimensions,mm], Статистика.[Вид продукции / Discription OF Goods], Статистика.[НД на продукцию / Test standard], Статистика.[НД на метод испытания / Product standard], Статистика.[Место вырезки образца / Sample Location], Статистика.[Направление вырезки образца / Sample Direction], Статистика.[№ Образца / Test №], Статистика.[Толщина / Thickness], Статистика.Размерность, Статистика.[Ширина / Width], Статистика.Размерность1, Статистика.[Диаметр / Diameter], Статистика.Размерность2, Статистика.[Площадь поперечного сечения / Sample area], Статистика.Размерность3, Статистика.[Тип образца / TYPE sample], Статистика.[Модуль упругости / Modulus Elasticity], Статистика.Размерность4, Статистика.[Врем сопр / Ultimate Strength], Статистика.Размерность5, Статистика.[Предел тек усл / Yield strength], Статистика.Размерность6, Статистика.[Максимальная нагрузка / MAX loading], Статистика.Размерность7, Статистика.[Нагрузка текучести / Loading fluidity], Статистика.Размерность8, Статистика.[А % / Elongation %], Статистика.[Индикатор проходимости / Pass Indicator], Статистика.[Примечание / Comment]);
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.05.2009, 14:32
это тоже будет работать, причем оставлять самую раннюю запись
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 9
15.05.2009, 15:00  [ТС]
что то ваш вариант ругается на толщину

Добавлено через 20 минут 12 секунд
ну наверно из-за русского языка и слеша...
кстати еще вопрос как еще кнопку на запуск запроса сделать..
на экспорт в эксель сделал как вы сказали все работает, спасибо.
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.05.2009, 15:15
Visual Basic
1
DoCmd.OpenQuery "имя запроса"
0
11 / 11 / 0
Регистрация: 09.04.2009
Сообщений: 65
15.05.2009, 16:02
Цитата Сообщение от vadimkim Посмотреть сообщение
оказывается совпадение нужно по всем полям, кроме первого (код).
то есть нужно если в таблице есть дубли строк то не показывать дубли-показывать одну строку из дублей.
и показать в таблице все строки, которые были без дублей изначально и строки, которые остались после удаления дублей. я вам счас базу вышлю ок?
так разве выбор этих всей полей, кроме "кода" и группировка по ним не поможет?

ну или, что почти тоже самое, используйте distinct:
SQL
1
SELECT DISTINCT <перечисление всей полей> FROM <таблица>
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.05.2009, 16:06
Цитата Сообщение от Nicky_ Посмотреть сообщение
ну или, что почти тоже самое, используйте distinct:
это не почти тоже самое, эт немного разные вещи (хотя, для данного случая согласен)
но, группировка вычисляется дольше
0
15.05.2009, 16:27  [ТС]

Не по теме:

Бурундук, спасибо. делаю кнопки. прикольно получается.
Спасибо большое. Если что надо помочь обращайтесь!!

0
11 / 11 / 0
Регистрация: 09.04.2009
Сообщений: 65
15.05.2009, 18:01
Цитата Сообщение от Бурундук Посмотреть сообщение
это не почти тоже самое, эт немного разные вещи (хотя, для данного случая согласен)
но, группировка вычисляется дольше

да ладно, это полностью одно и тоже в этом запросе, так как здесь нет агрегирующих функций.
а что такое group by - я знаю! и в том запросе, оно совсем не к месту использовалось.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.05.2009, 18:01
Помогаю со студенческими работами здесь

Нахождение одинаковых значений по определенным столбцам на разных листах и копирование их на новый лист
Добрый день! Прошу помощи. Нужно написать макрос (только макрос, формулы не подойдут). Задача: есть файл (который периодически...

Подсчет количества одинаковых значений по определенным столбцам (в пределах одной конкретной строки) и вывод в поле
Добрый день, форумчане! Составляется форма для ежедневного отчета по насосной станции. Далее опишу подробнее описание сути вопроса. Цель...

Сравнение коллекций по столбцам
Здравствуйте. У меня два распарсенных файла, занесенных в коллекции atomList.Add(at) и atomList2.Add(atn). В каждой коллекции...

Сравнение таблиц по столбцам
Есть две таблицы вида как на фото. Требуется во второй таблице найти значение совпадающие с первой по ord_id и marka столбцы обоих таблиц...

Сравнение двух таблиц, поиск совпадений по 3-м столбцам
Доброго времени суток! Есть задача - сравнить 2 таблицы (одна свежая, вторая за предыдущий день), найти совпадения по наименованию товара...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru