none
Contar registros RRS feed

  • Pregunta

  • Hola,

    Tengo el siguiente problema, tengo 2 tablas en la cual necesito contar la cantidad total de equipos cuyo modelo sean "Blade" y pertenezcan a un ambiente de "Produccion"

    Para la primera tabla:

    select distinct modelo, COUNT(distinct serie) as [Cantidad]
    from inventario where modelo like 'Blade %' and Ambiente='Produccion'
    group by modelo


    modelo Cantidad
    Blade HS12 2
    Blade HS20 4
    Blade HS21 4
    Blade HS22 15
    Blade JS12 12

    Para la segunda tabla

    select distinct modelo, COUNT(distinct serie) as [Cantidad]
    from inventariogc where modelo like 'Blade %' and Ambiente='Produccion'
    group by modelo


    modelo Cantidad
    Blade HS20 4
    Blade HS21 4
    Blade HS22 11
    Blade JS12 6

    Y cuando quiero hacer la sumatoria de ambas tablas:

    WITH datosGC AS
    (
    select distinct modelo, COUNT(distinct serie) as [Cantidad]
    from inventario where modelo like 'Blade %' and Ambiente='Produccion'
    group by modelo
    union
    select distinct modelo, COUNT(distinct serie) as [Cantidad]
    from inventariogc where modelo like 'Blade %' and Ambiente='Produccion'
    group by modelo
    )
    select modelo, sum(Cantidad) as [Cantidad]
    from datosGC
    group by modelo


    En el resultado tengo 2 filas que no se están sumando:


    ¿En dónde se encuentra el error?

    Agradeceré su respuesta.

    Saludos.

    jueves, 21 de junio de 2012 16:57

Respuestas

  • El problema esta en que la union de las dos consultas descuenta registros identicos. Para evitar esto, usa UNION ALL.

    WITH datosGC AS
    (
    select distinct modelo, COUNT(distinct serie) as [Cantidad]
    from inventario where modelo like 'Blade %' and Ambiente='Produccion'
    group by modelo
    UNION ALL
    select distinct modelo, COUNT(distinct serie) as [Cantidad]
    from inventariogc where modelo like 'Blade %' and Ambiente='Produccion'
    group by modelo
    )
    select modelo, sum(Cantidad) as [Cantidad]
    from datosGC
    group by modelo

    Saludos,

    Monica


    This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread.

    • Marcado como respuesta Eder Costa martes, 26 de junio de 2012 16:55
    jueves, 21 de junio de 2012 23:19

Todas las respuestas

  • Hola. Valida si el contenido del campo es idéntico en ambas tablas. Es decir, si en una tabla está 'Blade HS20 ' y en otra 'Blade HS20' el UNION los toma como diferentes.

    Nos cuentas...

    Saludos,

     

    Guillermo Taylor F.
    IT Pro & Xbox gamer
    My blog

    jueves, 21 de junio de 2012 17:07
  • No tengo las tablas y los datos pero sospecho que tambien en el resumen total tu calculo fue Sum(Distinct Cantitad).. Puede ser?


    Blog: http://about.me/GeriReshef

    jueves, 21 de junio de 2012 17:09
  • Hola Guillermo,

    Efectivamente, los contenidos son idénticos en ambas tablas. Creo que de ser diferentes como por ejemplo si hubiera un espacio demás estos aparecerían en los resultados.


    jueves, 21 de junio de 2012 17:16
  • Hola Geri,

    Como muestro en mi código arriba no he usado el distinct, aún incluyéndolo obtengo el mismo resultado.

    jueves, 21 de junio de 2012 17:25
  • El problema esta en que la union de las dos consultas descuenta registros identicos. Para evitar esto, usa UNION ALL.

    WITH datosGC AS
    (
    select distinct modelo, COUNT(distinct serie) as [Cantidad]
    from inventario where modelo like 'Blade %' and Ambiente='Produccion'
    group by modelo
    UNION ALL
    select distinct modelo, COUNT(distinct serie) as [Cantidad]
    from inventariogc where modelo like 'Blade %' and Ambiente='Produccion'
    group by modelo
    )
    select modelo, sum(Cantidad) as [Cantidad]
    from datosGC
    group by modelo

    Saludos,

    Monica


    This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread.

    • Marcado como respuesta Eder Costa martes, 26 de junio de 2012 16:55
    jueves, 21 de junio de 2012 23:19
  • Muchas gracias Mónica :)
    viernes, 13 de julio de 2012 17:09