none
Buscar registros unicos en 4 tablas RRS feed

  • Pregunta

  • Buenas
    Tengo 4 tablas distintas, con distintos campos, pero en todas ellas hay el campo NIF.
    Como puedo contar los NIF únicos de todas las tablas en conjunto?
    Es decir el NIF de la tabla 1 no se puede contar en las otras, ni el NIF de la tabla 3 tampoc en las otras.... etc.
    Gracias
    jueves, 9 de mayo de 2019 11:26

Respuestas

  • Para sacar todos los NIF distintos que haya en todas las tablas se me ocurre algo asi como esto:

    select nif from tabla1
    union select nif from tabla2
    union select nif from tabla3
    union select nif from tabla4
    

    El operador UNION (ojo, no el UNION ALL) hace automaticamente un "distinct" y elimina los duplicados, asi que el resultado de esa consulta sera el conjunto de todos los nif diferentes.

    jueves, 9 de mayo de 2019 11:53
  • no se donde poner el count

    Puedes meterlo todo en una subconsulta y luego hacer el Count sobre la subconsulta:

    select count(*) from (
        select nif from tabla1
        union select nif from tabla2
        union select nif from tabla3
        union select nif from tabla4
    ) as t
    

    jueves, 9 de mayo de 2019 13:56
  • Buenas

    Esto me ha ido perfecto

    select nif from tabla1
    union select nif from tabla2
    union select nif from tabla3
    union select nif from tabla4

    Me los enseña todos los que no estan repetidos. Pero si quiero que me de el total? no se donde poner el count

    gracias

    jueves, 9 de mayo de 2019 12:13

Todas las respuestas

  • Hola Buen día, deberías hacer una unión entre tablas con "UNION ALL" y hacer un grupo por "NIF" con "Group By" luego puedes filtrar los repetidos con "having count(*) > 1"
    jueves, 9 de mayo de 2019 11:39
  • Para sacar todos los NIF distintos que haya en todas las tablas se me ocurre algo asi como esto:

    select nif from tabla1
    union select nif from tabla2
    union select nif from tabla3
    union select nif from tabla4
    

    El operador UNION (ojo, no el UNION ALL) hace automaticamente un "distinct" y elimina los duplicados, asi que el resultado de esa consulta sera el conjunto de todos los nif diferentes.

    jueves, 9 de mayo de 2019 11:53
  • se propuso el union all para saber que datos están duplicados con UNION vas a tener un distinct como dice Alberto, pero no vas a poder determinar que NIF esta duplicado.
    jueves, 9 de mayo de 2019 11:55
  • Buenas

    Esto me ha ido perfecto

    select nif from tabla1
    union select nif from tabla2
    union select nif from tabla3
    union select nif from tabla4

    Me los enseña todos los que no estan repetidos. Pero si quiero que me de el total? no se donde poner el count

    gracias

    jueves, 9 de mayo de 2019 12:13
  • no se donde poner el count

    Puedes meterlo todo en una subconsulta y luego hacer el Count sobre la subconsulta:

    select count(*) from (
        select nif from tabla1
        union select nif from tabla2
        union select nif from tabla3
        union select nif from tabla4
    ) as t
    

    jueves, 9 de mayo de 2019 13:56
  • Me funciona perfecto

    muchas gracias

    jueves, 9 de mayo de 2019 15:46