Запрос найти и отобразить уникальные записи в ms-access? - PullRequest
0 голосов
/ 13 июля 2011

Я использую MS-ACCESS. У меня есть таблица с полем как Receipt_No. В этом поле много раз повторяются значения. Я просто хочу отображать эти повторяющиеся значения только один раз, а не отображать их несколько раз. Вот мой стол:

Registration_No  Payment_Date  Charges  Receipt_No
T-11             8/7/2011      200      105
T-12             8/7/2011      200      106
T-13             7/12/11       200      107
T-14             12/7/2011     200      108
T-15             12/7/2011     400      108

Здесь, в поле Receipt_No, поле 108 появляется 2 раза, и я хочу отобразить его только один раз как: (взимает 200 или 400. Но Receipt_No должно отображаться один раз): Пожалуйста, помогите мне ..

Registration_No  Payment_Date  Charges  Receipt_No
T-11             8/7/2011      200      105
T-12             8/7/2011      200      106
T-13             7/12/11       200      107
T-14             12/7/2011     200      108

Ответы [ 2 ]

1 голос
/ 13 июля 2011

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

select * from Demand 
where reg_no in (
    select reg_no
    from Demand
    group by reg_no
    having count(*) = 1
)

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

select * from demand
inner join
 (
      select
           receipt_no,
           min(charges) AS min_charges
      from
           demand
      group by
           receipt_no
 ) sq
 on demand.receipt_no = sq.receipt_no
 and demand.charges = sq.min_charges

Обратите внимание, что это все еще не совсем то, что вы хотите: если есть две или более записи с одинаковыми значениями для receive_no и сборовэтот запрос вернет их всех.

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

0 голосов
/ 13 июля 2011

Не совсем точно, что вам нужно в вашем запросе, поскольку вы не предоставили много подробностей, но используете SELECT DISTINCT Пропускает записи, которые содержат повторяющиеся данные в выбранных полях. Для включения в результаты запроса значения для каждого поля, перечисленного в операторе SELECT, должны быть уникальными.

см. Документы MS Access для более подробной информации

Но в качестве примера следующий запрос выберет все LastNames, но удалит повторяющиеся значения.

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