Microsoft Access - Отличительная ссылка SQL в таблице - PullRequest
0 голосов
/ 18 августа 2011

Извините, если на этот вопрос уже был дан ответ.Я посмотрел вокруг, но не нашел ничего, что действительно работало.

По сути, я хочу получить все данные, основанные на различиях в столбце таблицы, из доступа

Поэтому я написал следующий код:

Set rs = CurrentDb.OpenRecordset("select * from table t where t.refnum IN (select distinct refnum from table)")

Это имеет смысл в SQL, но я не могу получить желаемые результаты в Access.

Ответы [ 2 ]

2 голосов
/ 18 августа 2011

Ваш внутренний запрос отличается. Но тогда ваш внешний запрос не различает его: -).

* означает, что вы хотите каждое поле в таблице. Если у вас есть дубликаты записей на этом уровне, то у вас есть таблица без уникального идентификатора записи, которая может быть плохим дизайном.

В любом случае - отчетливое возвращение выглядит так:

Set rs = CurrentDb.OpenRecordset("SELECT min(refnum), [field1], [field2] FROM table GROUP BY [field1], [Field2])

Вам не нужен внутренний / внешний запрос, как у вас - только это.

Также - просто стандартный совет - вам лучше составить список полей, чем использовать *.

EDIT
Я добавил группу в sql выше. Кроме того, вам нужно перечислить поля сейчас - нельзя использовать *. Кроме того, помните, что поля, которые вы агрегируете (например, refnum, когда вы используете для него min ()), не должны указываться в вашем GROUP BY.

0 голосов
/ 18 августа 2011

Set rs = CurrentDb.OpenRecordset («выберите * из таблицы t, где t.refnum IN (выберите refnum из группы таблиц по refnum)»)

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