SQL Server - update con subconsultas

 
Vista:
sin imagen de perfil
Val: 48
Ha disminuido su posición en 2 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

update con subconsultas

Publicado por JJ (26 intervenciones) el 15/10/2019 19:02:50
TENGO LA SIGUIENTE TABLA

ID-------NOMBRE------- FECHA_1-------NIVEL
11111 ABC 01/01/2019 NULL
11111 ABC 01/01/2018 NULL
11111 ABC 01/01/2017 NULL
22222 OPQ 01/01/2010 NULL
22222 OPQ 01/02/2010 NULL
22222 OPQ 01/01/2001 NULL
33333 DFG 10/10/2019 NULL

DESEO QUE SE TOME LA MENOR FECHA DEL ID Y ACTUALICE EL VALOR DEL CAMPO NIVEL POR EL VALOR 1, ES DECIR QUE LA CONSULTA QUEDE DE LA SIGUIENTE MANERA

ID-------NOMBRE------- FECHA_1---------NIVEL
11111 ABC 01/01/2017 1
22222 OPQ 01/01/2001 1
33333 DFG 10/10/2019 1

Y QUE LA MOMENTO DE CONSUTAR LA TABLA ME MUESTRE TODOS LOS DATOS, ES DECIR, Q NO ELIMINE NINGUN REGISTRO

ID NOMBRE FECHA_1 NIVEL
11111 ABC 01/01/2019 NULL
11111 ABC 01/01/2018 NULL
11111 ABC 01/01/2017 1
22222 OPQ 01/01/2010 NULL
22222 OPQ 01/02/2010 NULL
22222 OPQ 01/01/2001 1
33333 DFG 10/10/2019 1

AGRADEZCO LA AYUDA A LA SOLUCIÓN
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

update con subconsultas

Publicado por Isaias (4418 intervenciones) el 15/10/2019 19:39:45
Veamos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DECLARE @Mytable TABLE  (ID INT, NOMBRE CHAR(3), FECHA DATETIME, NIVEL INT)
 
INSERT INTO @Mytable VALUES(
11111,'ABC','01/01/2019',NULL),
(11111,'ABC','01/01/2018',NULL),
(11111,'ABC','01/01/2017',NULL),
(22222,'OPQ','01/01/2010',NULL),
(22222,'OPQ','01/02/2010',NULL),
(22222,'OPQ','01/01/2001',NULL),
(33333,'DFG','10/10/2019',NULL)
 
UPDATE @Mytable SET NIVEL = 1
FROM @Mytable T1 INNER JOIN (SELECT ID, MIN(FECHA) AS FECHA FROM @Mytable GROUP BY ID) AS T2
ON T1.ID = T2.ID AND T1.FECHA = T2.FECHA
 
SELECT * FROM @Mytable

ID NOMBRE FECHA NIVEL
11111 ABC 2019-01-01 00:00:00.000 NULL
11111 ABC 2018-01-01 00:00:00.000 NULL
11111 ABC 2017-01-01 00:00:00.000 1
22222 OPQ 2010-01-01 00:00:00.000 NULL
22222 OPQ 2010-01-02 00:00:00.000 NULL
22222 OPQ 2001-01-01 00:00:00.000 1
33333 DFG 2019-10-10 00:00:00.000 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
4
Comentar
sin imagen de perfil
Val: 48
Ha disminuido su posición en 2 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

update con subconsultas

Publicado por jj (26 intervenciones) el 15/10/2019 20:34:17
Gracias por la pronta Respuesta Isaias,

consulta, hay alguna manera de que este proceso se realice sin necesidad de crear esa nueva tabla??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

update con subconsultas

Publicado por Isaias (4418 intervenciones) el 15/10/2019 22:14:50
Tuve que crear mi tabla de trabajo, ¿como hago las pruebas si no tengo mi tabla?, usted puede trabajar directamente con su tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 48
Ha disminuido su posición en 2 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

update con subconsultas

Publicado por JJ (26 intervenciones) el 15/10/2019 22:15:13
Isaias, favor omitir el mensaje anterior.... no había leído bien su respuesta... muchas gracias por la ayuda, funciona perfecto....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar