Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выбрать записи, которые соответсвуют уникальным записям другого поля / 25 сообщений из 28, страница 1 из 2
21.12.2016, 22:10
    #39372409
VicN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
Нужно выбрать только те записи из поля Fields2, у которых есть записи в поле Fields1 (а эти записи должны быть в единичном в виде).
Пример
Fields1 Fields2 Fields3а аа аааб аб ааб ас абвг аа ккк аб ссса ас иии
Как видно из примера, уникальных записей в Fields1 три, соответственно и выборка записей из поля Fields2 тоже должно быть три.

Мой запрос выводит почему то больше трех записей
Код: sql
1.
SELECT Fields2 FROM Table1 WHERE Fields1 IN (SELECT Fields1 FROM Table1 GROUP BY Fields1 HAVING Fields1 is NOT NULL)
...
Рейтинг: 0 / 0
21.12.2016, 22:16
    #39372414
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
VicN,

попробуйте без вложенного запроса, - просто в условие отбора поля Fields2 вставьте
Like "*" & [Fields1] & "*"
...
Рейтинг: 0 / 0
21.12.2016, 22:33
    #39372427
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
Код: sql
1.
SELECT First(Fields2) FROM Table1 WHERE Fields1 Is Not Null GROUP BY Fields1
...
Рейтинг: 0 / 0
21.12.2016, 23:26
    #39372454
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
__Michelle,

В вашем случае наверно будет лишняя строка
г - аа - ккк (г не null, но в аа не входит),
НО про Null в Like я у себя не подумал...
вот так наверно будет правильный результат:
Код: sql
1.
2.
3.
SELECT Table1.Fields1, Table1.Fields2, Table1.Fields3
FROM Table1
WHERE (((Table1.Fields1) Is Not Null) AND ((Table1.Fields2) Like "*" & [Fields1] & "*"))
...
Рейтинг: 0 / 0
21.12.2016, 23:38
    #39372465
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
__Michelle,

не не мой день... я вообще не туда... проблема в том, что ТС не дал таблицу результата,
из условия не ясно что делать с первой и последней строкой...
Вы вроде на правильном пути, но у вас в результате будет 4 строки, а не 3 как хочет ТС...
А какие 3 строки он хочет в результат - не уточнил...
...
Рейтинг: 0 / 0
21.12.2016, 23:51
    #39372477
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
VicNКак видно из примера, уникальных записей в Fields1 три, соответственно и выборка записей из поля Fields2 тоже должно быть три.До тех пор, пока не сформулировано, какую из строк с одинаковым значением Field1 следует вернуть и почему, разговаривать особо и не о чем... потому как именно поставленной задаче вполне соответствует запрос
Код: vbnet
1.
2.
3.
SELECT MAX(Fields2)
FROM Table1 
GROUP BY Fields1


Можно взять любую другую подходящую групповую функцию.
...
Рейтинг: 0 / 0
21.12.2016, 23:58
    #39372482
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
vmag,

Нет, у меня будет не четыре строки, а три.
В силу того, что
Код: sql
1.
...WHERE Fields1 Is Not Null... 

и
Код: sql
1.
...GROUP BY Fields1...

То есть, отсекаются записи с пустыми Fields1,
и группировка отбирает уникальные значения среди непустых.
А таких значений, как мы видим, три.
...
Рейтинг: 0 / 0
22.12.2016, 00:04
    #39372483
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
AkinaVicNКак видно из примера, уникальных записей в Fields1 три, соответственно и выборка записей из поля Fields2 тоже должно быть три.До тех пор, пока не сформулировано, какую из строк с одинаковым значением Field1 следует вернуть и почему, разговаривать особо и не о чем...
потому как именно поставленной задаче вполне соответствует запрос
Код: vbnet
1.
2.
3.
SELECT MAX(Fields2)
FROM Table1 
GROUP BY Fields1


Можно взять любую другую подходящую групповую функцию.Только не учтено Fields1 Is Not Null.

А про возникающую неопределенность выбора одного из возможных значений не стала писать,
хотя поначалу и собиралась. Но с планшета это делать так нудно...
...
Рейтинг: 0 / 0
22.12.2016, 00:04
    #39372484
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
__Michelle,

Прошу прощения, не поленился, набрал, формально у Вас самый правильный ответ, а это замечание

AkinaДо тех пор, пока не сформулировано, какую из строк с одинаковым значением Field1 следует вернуть и почему, разговаривать особо и не о чем...

уже идет на откуп ТС у...
...
Рейтинг: 0 / 0
22.12.2016, 00:12
    #39372485
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
vmag,
vmagуже идет на откуп ТС у...  Для начала хорошо бы ТС научиться различать "запись" и "значение поля".)))
...
Рейтинг: 0 / 0
22.12.2016, 07:30
    #39372525
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
__MichelleТолько не учтено Fields1 Is Not Null.
Не стал дописывать WHERE по причине некоторой очевидности. Как по мне, так вообще вывод field2 без соответствующего ему field1 уже странен - ну получил ты данные, а о чём они?
...
Рейтинг: 0 / 0
22.12.2016, 10:05
    #39372591
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
Студенты . . . .
...
Рейтинг: 0 / 0
22.12.2016, 10:11
    #39372598
VicN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
авторКак по мне, так вообще вывод field2 без соответствующего ему field1 уже странен - ну получил ты данные, а о чём они?
авторА какие 3 строки он хочет в результат - не уточнил...
Вы правы. Извините за оплошность, сейчас все уточню

Я хочу получить такой результат
Fields1 Fields2а ааб абг аа
Зачем мне это надо? Я хочу вывести эти поля в отдельные таблицы (это я уже как бы сделал), а затем связать их внешним ключом. Но для этого мне нужно понять как вывести вот эту пару полей.

И да, действительно, при запросе
Код: sql
1.
SELECT First(Fields2) FROM Table1 WHERE Fields1 Is Not Null GROUP BY Fields1


выводится лишняя строка

Прикрепляю пример моей бд
Там запрос "ВыборкаПоляОбозначение" выводит все значения (в единичном экземпляре) поля Обозначение (он же Fields1) таблицы Перечень. Их там 2011. При запросе выше выводятся 2012.

В общем, мне нужно вывести пару полей (Обозначение - это Fields1 и Наименование - Fields2) таблицы Перечень
...
Рейтинг: 0 / 0
22.12.2016, 10:12
    #39372600
VicN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
...
Рейтинг: 0 / 0
22.12.2016, 10:25
    #39372607
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
VicN,

Если выводится лишняя запись, значит "пустое" значение в Fields1 не Null, а пустая строка, то есть "".
Измените условие отбора.
Код: sql
1.
WHERE Fields1 <> ""

И все.
...
Рейтинг: 0 / 0
22.12.2016, 10:31
    #39372612
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
Базу не смотрела.
Я в дороге.
Но и так все ясно.
...
Рейтинг: 0 / 0
22.12.2016, 10:34
    #39372614
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
982183Студенты . . . .

самое интересное, что эти самые студенты потом попадают в разработку и поддержку всякого рода (в том числе и федеральных) ресурсов... егаисы, гисы, еиасы, еаисы, еасузы и прочее, которые то никак не могут сдать в эксплуатацию по нескольку лет и даже федеральные законы отодвигают по нескольку раз на пол года, то работа состоит из сплошных глюков и траблов... тут уже два исхода - либо нужно учить их совместно хотя бы тут, либо отлавливать и сразу пристреливать...
...
Рейтинг: 0 / 0
22.12.2016, 10:46
    #39372623
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
VicNИ да, действительно, при запросе
Код: sql
1.
SELECT First(Fields2) FROM Table1 WHERE Fields1 Is Not Null GROUP BY Fields1



выводится лишняя строка

Мишель вам правильно сказала на счет не NULL, а еще вы запросто (судя по типажу) могли половину букв а (например) набрать русским шрифтом, а половину - английским (а a - нет отличия визуально) , выше есть файл 3.mdb в нем есть запрос "Мишель" включите в нем показ Fields1 и увидите свой результат...
...
Рейтинг: 0 / 0
22.12.2016, 10:48
    #39372624
VicN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
__MichelleVicN,

Если выводится лишняя запись, значит "пустое" значение в Fields1 не Null, а пустая строка, то есть "".
Измените условие отбора.
Код: sql
1.
WHERE Fields1 <> ""

И все.
Действительно, все так и было. Огромное вам спасибо
...
Рейтинг: 0 / 0
22.12.2016, 10:57
    #39372631
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
vmag...нужно учить их совместно хотя бы тут... Ну, не знаю...
"Научить нельзя, можно научиться."
Просто многие в последнее время "пошли в программисты" по какому-то общему поветрию,
а их призвание, возможно, совсем в другом.
Но то ли информации о многих других профессиях мало, то ли перспективы с последующим
устройством различны...
...
Рейтинг: 0 / 0
22.12.2016, 12:27
    #39372758
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
VicNЯ хочу получить такой результат
Fields1 Fields2а ааб абг аа
Объясните, почему в первой строке эталонного ответа именно эта запись, почему не устроит ответ
Fields1 Fields2а асб абг аа
?
...
Рейтинг: 0 / 0
22.12.2016, 13:24
    #39372868
VicN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
AkinaVicNЯ хочу получить такой результат
Fields1 Fields2а ааб абг аа
Объясните, почему в первой строке эталонного ответа именно эта запись, почему не устроит ответ
Fields1 Fields2а асб абг аа
?
Что то я не совсем понял ваш вопрос?
...
Рейтинг: 0 / 0
22.12.2016, 16:00
    #39373084
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
А что непонятного? в первой строке Вашего эталонного ответа выбрано значение поля Fields2="аа", а я показываю вариант, где Fields2="ас". Вот я и прошу объяснить, какие резоны заставили Вас выбрать именно это значение. А заодно либо сформулировать чёткое правило, по которому любой выберет именно "аа", либо в явной форме сказать, что Вам пофиг, какое из значений будет в итоговой выборке.
...
Рейтинг: 0 / 0
22.12.2016, 19:43
    #39373258
VicN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
Akina, понял что вы имеете ввиду. Вы про первую и последнюю строчку моего примера. Моя ошибка или не внимательность при составлении примера таблицы. По идее, одно значение в поле Fields2 может иметь несколько значений в поле Fields1. Так что, в строчке
а ас иии
просто ошибка.
...
Рейтинг: 0 / 0
22.12.2016, 20:57
    #39373291
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать записи, которые соответсвуют уникальным записям другого поля
VicNПо идее, одно значение в поле Fields2 может иметь несколько значений в поле Fields1.Алё, товарисч! что с тобой? у тебя и в исходном примере КАЖДОМУ уникальному значению поля Fields2 соответствует по 2 значения поля Fields1.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выбрать записи, которые соответсвуют уникальным записям другого поля / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]