Используйте GROUP BY
для столбца, который вы хотите быть уникальным.
Чтобы PL-SQL не жаловался, вам придется использовать агрегатную функцию, которая выберет значение для других столбцов.
Я выбрал MAX()
, но MIN()
или несуществующий whatever()
будут делать то же самое.
SELECT
rp.cod_entidad,
count(*) as rowcount, -- number of rows per distinct rp.cod_entidad
MAX(to_date(to_char(SYSDATE,'YYYYMMDD'),'YYYY-MM-DD')) as fecha_pago,
MAX(to_char(sysdate,'hh-mi-ss')) as hora_pago
FROM registry rp
INNER JOIN product pc ON (pc.nro_solicitud = rp.nro_solicitud)
WHERE pc.resp_2 = 'OK' AND pc.resp_1 = 'OK'
GROUP BY rp.cod_entidad
Неявное, где объединение считается вредным
PS Пожалуйста, не используйте это уродливое неявное выражение «присоединение», это сбивает с толку и является плохой практикой, поскольку вы смешиваете критерии выбора с критериями объединения в своем предложении where
безо всякой причины.
МыУ меня явный синтаксис объединения с 1993 года, я настоятельно рекомендую его.
Это значительно облегчит написание правильных запросов и сделает ваши намерения более ясными.