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