Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Actualizar campos de tabla con base al mismo campo

Estas en el tema de Actualizar campos de tabla con base al mismo campo en el foro de SQL Server en Foros del Web. Hola tengo un problemita me han pedido que actualize una tabla de mi bd que tiene muchos registros, y siento que lo puedo lograr con ...
  #1 (permalink)  
Antiguo 01/12/2009, 00:55
 
Fecha de Ingreso: enero-2005
Mensajes: 50
Antigüedad: 19 años, 4 meses
Puntos: 0
Actualizar campos de tabla con base al mismo campo

Hola tengo un problemita me han pedido que actualize una tabla de mi bd que tiene muchos registros, y siento que lo puedo lograr con un query de update pero por mas que lo intento no me funciona nada... les comento mi estructura

Tabla_Ganancias

Código:
IdTabla 	Servicio    Cuenta   Ganancia
1		   3            1               10 
2		   4            1                8
3		   50           1                8 
4                  3            2                5 	
5                  4            3                8 

.
.
.
5000
etc...
Me piden Actualizar el valor de ganancia para cada registro cuya cuenta tenga un servicio igual que en la cuenta numero 1, tomando el valor de ganancia cuya cuenta = 1

es decir asi deberia quedar mis datos
Código:
IdTabla 	Servicio    Cuenta   ganancia
1		   3            1               10
2		   4            1                8
3		   50           1                8 
4                  3            2               10	
5                  4            3                8

.
.
.
  #2 (permalink)  
Antiguo 01/12/2009, 07:41
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Actualizar campos de tabla con base al mismo campo

Código:
UPDATE M
SET      Ganancia = S.Ganancia
FROM    (
           SELECT  Servicio
                      ,MAX(Ganancia) Ganancia -- Para asegurar que no se repetira
           FROM    MITABLA 
           WHERE  Cuenta = 1
           GROUP BY  Servicio
   
) S
INNER JOIN MITABLA M
ON  S.Servicio = M.Servicio AND
      M.Cuenta <> 1
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:37.