none
realizar un inner join (uno a uno) sin campos llave RRS feed

  • Pregunta

  • Hola amigos, necesito tener un join de uno a uno (sin duplicados) pero las tablas que cruzo no tienen campos llave para hacerlo correctamente, hay una forma con intersect pero necesito un campo de la tabla BENEFIC_CC:

    select n.estado,(case when n.cod_pare='C' then 'CONYUGUE'
    					  when b.cod_pare='P' then 'PADRE'
    					  when b.cod_pare='M' then 'MADRE'
    					  when b.cod_pare='H' then 'HIJO(A)'
    					  when b.cod_pare='E' then 'HERMANO(A)' 
    					  end) as Tipo,COUNT(*) as Casos,SUM(monto_pag_pe) as Total_Pagado
    				from (select * from TCON_PAGO_CC where cod_fuente='01' and periodo_sol='201302' and monto_pag_pe>0
    intersect
    select a.* from TCON_PAGO_CC a inner join BENEFIC_CC b on a.nua=b.nua and a.identificador=b.num_ide
    and a.no_certi=b.no_certi				
    where a.cod_fuente='01' and a.periodo_sol='201302' and a.monto_pag_pe>0)n
    group by n.estado

    la malo es que mediante el intersect no puedo seleccionar campos de la tabla BENEFIC_CC

    alguna solución???

    y no puedo alterar las tablas :(
    • Editado Bpotro82 martes, 18 de junio de 2013 18:19
    martes, 18 de junio de 2013 18:18

Respuestas

  • usando el distinct en el select se soluciona todo y ya no habrá que hacer el intersect

    select n.estado,(case when n.cod_pare='C' then 'CONYUGUE'
    					  when n.cod_pare='P' then 'PADRE'
    					  when n.cod_pare='M' then 'MADRE'
    					  when n.cod_pare='H' then 'HIJO(A)'
    					  when n.cod_pare='E' then 'HERMANO(A)' 
    					  end) as Tipo,COUNT(*) as Casos,SUM(monto_pag_pe) as Total_Pagado
    				from (
    select distinct a.*,b.cod_pare from TCON_PAGO_CC a inner join BENEFIC_CC b on a.nua=b.nua and a.identificador=b.num_ide
    and a.no_certi=b.no_certi				
    where a.cod_fuente='01' and a.periodo_sol='201302' and a.monto_pag_pe>0)n
    group by n.estado,n.cod_pare
    usamos el distinct para no repetir registros de la tabla TCON y añadimos a la selección el campo q necesitabamos q es el b.cod_pare :D

    • Marcado como respuesta Bpotro82 martes, 18 de junio de 2013 18:46
    martes, 18 de junio de 2013 18:46