Consulta en oracle con condición

Podrían ayudarme con lo siguientes:
Estoy tratando de hacer con consulta sobre dos tablas relacionadas A es general y B es de detalle, pero necesito poner como condición que solo se consideren los registros de la tabla A que tengas más de un registro duplicado por un campo en particular, este campo no es parte del clave primaria.
este es el select que no me funciona:
select g.main_id,
g.mafon_id,
g.tlv_id,
g.mape_id,
g.mati_id,
g.matt_id,
g.mast_id,
g.tlv_n_identifi_cliente,
g.tlv_nombre,
g.matc_id,
g.tlv_fch_reg_conta_cventa,
g.tlv_n_compro_emitidos,
g.tlv_fch_emision_cventa,
g.tlv_base_impo_tarifa_cero,
g.tlv_iva_presuntivo,
g.tlv_base_impo_grabada_iva,
g.mapiva_id,
g.tlv_monto_iva,
g.tlv_base_impo_ice,
g.mapice_id,
g.tlv_monto_ice,
g.tlv_monto_iva_bienes,
g.maprivab_id,
g.tlv_monto_reten_iva_bienes,
g.tlv_monto_iva_servicios,
g.maprivas_id,
g.tlv_monto_reten_iva_servicios,
g.tlv_reten_presuntiva,
g.tlv_observa,
g.tlv_estado,
g.tlv_id_create,
g.tlv_id_modify,
g.tlv_last_modify,
d.macrf_id,
d.dretv_porcen_ret,
d.dretv_base_impo,
d.dretv_monto_ret,
d.dretv_estado
from dfu_owner_at.df_tl_ventas g, dfu_owner_at.df_detalle_reten_tlv d
where g.main_id = d.main_id (+)
and g.mafon_id = d.mafon_id (+)
and g.tlv_id = d.tlv_id (+)
and g.mape_id = '200703'
and exists(select count(*)
from df_tl_ventas t
where g.main_id = t.main_id
and g.mafon_id= t.mafon_id
and g.tlv_id = t.tlv_id
group by t.tlv_n_identifi_cliente
having count(*) > 1)
order by g.main_id, g.mafon_id, g.tlv_id

1 respuesta

Respuesta
1
Lo estás haciendo casi bien.
Quítale el count(*) del select de la subconsulta y cámbialo solo por un 1 (cualquier carácter constante, o el campo que utilizas en el group by)
Esto se debe a que cuando no existen datos la cuenta te trae cero que para el exists es un dato válido
Si te he podido ayudar te agradezco que cierres esta pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas