Ir al contenido principal

¿Como realizar la unión de registros con valores escalonados en SQL Server?


Uno de los problemas recurrentes que se presentan al momento de realizar consultas es la necesidad de unir registros con valores escalonados con un campo en común.
Resultado de consulta

 
Resultado deseado

Para solucionar este tipo de requerimientos puedes hacer uso de las funciones MAX y Aplicar el GROUP BY al campo en común, como se muestra en el siguiente ejemplo.

--DROP TABLE #tablaTemporal
CREATE TABLE #tablaTemporal(ID INT,Campo1 varchar(20),Campo2 varchar(20),Campo3 varchar(20))

insert into #tablaTemporal( ID, Campo1) values(1,'0125')
insert into #tablaTemporal( ID, Campo2) values(1,'0126')
insert into #tablaTemporal( ID, Campo3) values(1,'0125')

insert into #tablaTemporal( ID, Campo1) values(2,'012311')
insert into #tablaTemporal( ID, Campo2) values(2,'012412')
insert into #tablaTemporal( ID, Campo3) values(2,'012513')

SELECT * FROM #tablaTemporal

SELECT ID 
,Max(Campo1) as Campo1
,max(Campo2) as Campo2
,MAX(Campo3) as Campo3
FROM #tablaTemporal 
GROUP BY ID ORDER BY ID

Como notaras en este ejemplo se crea una tabla temporal para simular un caso practico, se insertan datos de manera que cumplan con el problema propuesto enseguida se realiza una consulta simple la cual da como resultado los valores escalonados y finalmente una consulta a la cual se le aplica la función Max a los diferentes campos a ser unidos ademas se usa GROUP BY al campo ID con campo en común repetible.

Comentarios

Entradas más populares de este blog

The OWASP Foundation

Es un proyecto para seguridad de aplicaciones web el cual incluye estándares así como herramientas y soluciones para las buenas practicas en cuestión de seguridad informática en el desarrollo de aplicaciones web. https://www.owasp.org Para mas información detallada puedes consultar la fuente oficial  https://www.owasp.org