none
Omitir registros iguales o remplazar resultado en consulta RRS feed

  • Pregunta

  • Buen dia a todos, tengo una consulta que es algo grande y como resultado final, me arroja lo siguiente:

    Nombre  Col1   Col2     NumEmpl Fecha
    PEDRO	1	0	1533	
    JUAN	1	0	1576	
    LUIS	1	0	1058	
    PEDRO	0	1	1533	16/07/2019
    JUAN	0	2	1576	24/06/2019
    LUIS	0	3	1058	04/06/2019


    Que me pueden recomendar para reemplazar los numeros 0 en la Col1 y Col2 por los que si tienen valor en este caso 1, y en la columna Fecha reemplazar los espacios vacios por los que si tienen una fecha, y obtener algo asi:

    Nombre  Col1   Col2     NumEmpl Fecha
    PEDRO	1	1	1533	16/07/2019
    JUAN	1	2	1576	24/06/2019
    LUIS	1	3	1058	04/06/2019


    Algo que he intentado para realizar eso es esto:

    SELECT Nombre, NumEmpl, SUM(Col1), SUM(Col2) GROUP BY Nombre, NumEmpl

    Pero al agregar la fecha de la siguiente manera, los registros se multiplican y no obtengo lo que deseo.

    SELECT Nombre, NumEmpl, SUM(Col1), SUM(Col2), Fecha GROUP BY Nombre, NumEmpl

    miércoles, 30 de octubre de 2019 23:03

Respuestas

Todas las respuestas

  • Deleted
    • Propuesto como respuesta Pablo RubioModerator miércoles, 30 de octubre de 2019 23:34
    • Marcado como respuesta Pollokullos jueves, 31 de octubre de 2019 15:33
    miércoles, 30 de octubre de 2019 23:33
  • Hola Pollokullos:

    Puedes aplicarlo de este modo.

    DECLARE @table TABLE
    (Nombre  VARCHAR(100), 
     col1    INT, 
     col2    INT, 
     NumEmpl INT, 
     fecha   VARCHAR(100)
    );
    insert into @table
    (Nombre, col1, col2, NumEmpl, fecha)
    values
    ('PEDRO',1,0,1533,''),
    ('JUAN' ,1,0,1576,''),
    ('LUIS' ,1,0,1058,''),
    ('PEDRO',0,1,1533,'16/07/2019'),
    ('JUAN' ,0,2,1576,'24/06/2019'),
    ('LUIS' ,0,3,1058,'04/06/2019');
    
    SELECT  O.Nombre, 
    		MAX(O.COL1) AS COL1, 
    		MAX(O.COL2) AS COL2, 
    		O.NumEmpl, 
    		FORMAT((MAX(CAST(FECHA AS DATE))),'d','es-es') AS FECHA 
    		FROM
    			(
    			SELECT * FROM @table -- AQUI DENTRO TU QUERY
    			) AS O
    	GROUP BY O.Nombre, O.NumEmpl
    
    	ORDER BY COL2

    Salida

    jueves, 31 de octubre de 2019 5:34
  • Muchas gracias y si es correcto, una de las filas siempre tendra 0, o valor vacio, y la otra tendra siempre un valor positivo.
    jueves, 31 de octubre de 2019 15:34
  • Muchas gracias
    jueves, 31 de octubre de 2019 15:34