MsAccess SQL: как предотвратить дублирование запроса Select - PullRequest
0 голосов
/ 09 января 2019

У меня есть запрос Select (много полей и несколько вычисляемых полей), который объединяет многие таблицы с нетривиальными предложениями Where и Order By. В зависимости от пользовательских фильтров он может возвращать повторяющиеся записи на основе идентификатора одной из соединенных таблиц. Я хотел бы исключить все строки результатов, которые имеют повторяющееся значение table1.ID.

Пример:

Select a.fld1, b.fld2, c.fld3, d.fld4 from (((tablea join tableb on a.x=b.x)
 join tablec on c.x=a.x) join tabled on d.x=a.x where blah-blah.

Это вернет:

a.fld1, b.fld2, c.fld3, d.fld4
1, 2, 3, 4
1, 21, 3, 4
2, 2, 3, 4
2, 22, 3, 4

Я хочу исключить лишние строки с дублирующимися значениями a.fld1. b.fld2 будет другим, и мне все равно, какие из этих записей будут опущены. Но мне нужно хотя бы одно значение из b.fld2 для других целей поиска.

Я не могу найти хороший способ сделать это.

Спасибо, Джефф

1 Ответ

0 голосов
/ 21 января 2019

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

При просмотре выходных данных кажется, что вы можете просто взять имеющийся у вас SQL и использовать его как подзапрос в новом операторе SQL, который группируется в первом поле (а также получить первое значение или самое низкое значение или все, что вы считаете подходящим для других полей, если это нормально, если данные в разных полях одной результирующей строки могут поступать из разных записей) ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...