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
Publicar un comentario