none
Resultado de Consulta RRS feed

  • Pregunta

  • Necesito los resultados de esta dos consultas se muestre en columnas distintas. Ver Ejemplo en la foto

    SELECT COUNT(ticket) AS PENDIENTES
     FROM tblTicket
     WHERE idEstado = 'PEN'
    
    SELECT COUNT(ticket) AS RESUELTOS
     FROM tblTicket
     WHERE idEstado = 'RES'
    
    

    miércoles, 29 de marzo de 2017 14:47

Respuestas

  • Usa una unica consulta y expresiones CASE para regar los valores.

    select
        sum(case when idEstado = 'PEN' then 1 else 0 end) as PENDIENTES,
        sum(case when idEstado = 'RES' then 1 else 0 end) as RESUELTOS
    from
        tblTicket;

    Con este metodo solo necesitas recorrer la tabla solo una vez, a diferencia de usar:

    select
        (query 1) as PENDIENTES,
        (query 2) as RESUELTOS;

    Si filtras y haces una agrupacion por [idEstado] entonces tendras que pivotear o transformar de filas a columnas.

    SELECT
    	P.PEN AS PENDIENTES,
    	P.RES AS RESUELTOS
    FROM
    	(
    	SELECT
    		idEstado, COUNT(*) AS cnt
    	FROM
    		tblTicket
    	WHERE
    		idEstado IN ('PEN', 'RES')
    	GROUP BY
    		idEstado
    	) AS T
    	PIVOT
            (
    	SUM(cnt)
    	FOR idEstado IN ('PEN', 'RES')
    	) AS P
    ;
    go


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas



    miércoles, 29 de marzo de 2017 14:54
  • Hola que tal Claudio Marin, lo puedes hacer como te lo comenta Hunchback o la siguiente consulta:

    Select
    (select count(ticket) from tblTicket where idEstado='PEN') as Pendientes,
    (select count(ticket) from tblTicket where idEstado='RES') as Resuelto

    Saludos,

    Jorge Muchaypiña G.


    Business Intelligence Analyst

    • Marcado como respuesta Claudio Marin viernes, 28 de julio de 2017 17:10
    miércoles, 29 de marzo de 2017 15:44

Todas las respuestas

  • Usa una unica consulta y expresiones CASE para regar los valores.

    select
        sum(case when idEstado = 'PEN' then 1 else 0 end) as PENDIENTES,
        sum(case when idEstado = 'RES' then 1 else 0 end) as RESUELTOS
    from
        tblTicket;

    Con este metodo solo necesitas recorrer la tabla solo una vez, a diferencia de usar:

    select
        (query 1) as PENDIENTES,
        (query 2) as RESUELTOS;

    Si filtras y haces una agrupacion por [idEstado] entonces tendras que pivotear o transformar de filas a columnas.

    SELECT
    	P.PEN AS PENDIENTES,
    	P.RES AS RESUELTOS
    FROM
    	(
    	SELECT
    		idEstado, COUNT(*) AS cnt
    	FROM
    		tblTicket
    	WHERE
    		idEstado IN ('PEN', 'RES')
    	GROUP BY
    		idEstado
    	) AS T
    	PIVOT
            (
    	SUM(cnt)
    	FOR idEstado IN ('PEN', 'RES')
    	) AS P
    ;
    go


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas



    miércoles, 29 de marzo de 2017 14:54
  • select count(ticket), idEstado from tblTicket
    group by idEstado

    Si serví a tu consulta, no olvides votar como útil.

    miércoles, 29 de marzo de 2017 14:55
  • Hola que tal Claudio Marin, lo puedes hacer como te lo comenta Hunchback o la siguiente consulta:

    Select
    (select count(ticket) from tblTicket where idEstado='PEN') as Pendientes,
    (select count(ticket) from tblTicket where idEstado='RES') as Resuelto

    Saludos,

    Jorge Muchaypiña G.


    Business Intelligence Analyst

    • Marcado como respuesta Claudio Marin viernes, 28 de julio de 2017 17:10
    miércoles, 29 de marzo de 2017 15:44