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

Actualizar campos de una tabla apartir de otros

Estas en el tema de Actualizar campos de una tabla apartir de otros en el foro de SQL Server en Foros del Web. Muy buenas. Necesito actualizar datos de una tabla apartir de otros de la misma tabla. A ver si me podeis ayudar: La tabla se llama ...
  #1 (permalink)  
Antiguo 20/01/2009, 04:53
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 11 meses
Puntos: 0
Actualizar campos de una tabla apartir de otros

Muy buenas.

Necesito actualizar datos de una tabla apartir de otros de la misma tabla. A ver si me podeis ayudar:

La tabla se llama Prueba y tiene estos datos: (sólo pongo algunos en realidad tiene miles)

ID MES HORA MIN MAX (nombre de los campos)

2300 DEC 0 0 128
2300 DEC 1 0 555
2300 DEC 2 8 256
2300 DEC 3 0 128
2300 DEC 4 5 345
2300 DEC 5 0 128
2300 DEC 6 0 128
2300 DEC 7 6 435
2300 DEC 8 0 128
2300 DEC 9 0 1111
.
.
.
.
.
.Pues bien, quiero poder meter todos los datos que sean de la ID 2300 y MES 'DEC', en la misma ID (2300), pero con MES 'JAN'.

Lo tengo que hacer con UPDATE, por que en el mes JAN, ya hay datos.

A ver si me podeis echar una mano.


Saludos y gracias

Última edición por t0n3; 21/01/2009 a las 01:49
  #2 (permalink)  
Antiguo 20/01/2009, 07:13
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Actualizar campos de una tabla apartir de otros

esto no te sirve?
Código:
Update MiTabla Set MES = 'JAN' Where ID = 2300
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.
  #3 (permalink)  
Antiguo 20/01/2009, 07:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Actualizar campos de una tabla apartir de otros

Nop, ya que necesito especificar que el mes 'JAN' coja los datos del mes 'DEC'

Gracias de todas formas
  #4 (permalink)  
Antiguo 20/01/2009, 14:16
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Actualizar campos de una tabla apartir de otros

¿Cual es tu PK?, no creo que sea ID MES, ¿cierto?
  #5 (permalink)  
Antiguo 21/01/2009, 01:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Actualizar campos de una tabla apartir de otros

A ver la ID es uno de los campos (columnas) en este caso es siempre 2300, pero podria ser cualquier otro numero. MES es otro de los campos (columnas), IDMES (junto) no es nada. La tabla queda así:


ID | MES | HORA | MIN | MAX (columnas)


2300  | DEC | 0 | 1 | 8
2783  | JAN | 5 | 2 | 4
2294  | JUL | 1 | 4 | 6
.
.
.
.

La columna HORA va de 0 a 23 (con lo cual, cada mes tiene 24 registros de MIN y MAX (de 0 a 23 horas)). Lo que quiero, es actualizar cada uno de los registros de cualquier otro mes (por ejmplo JAN), con los que contiene DEC.

PD: No se qué es PK


Gracias y Saludos ;)

Última edición por t0n3; 21/01/2009 a las 01:48
  #6 (permalink)  
Antiguo 21/01/2009, 05:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Actualizar campos de una tabla apartir de otros

Ya está la solución es esta:

update pruebas p1
set MIN=(select MIN from pruebas p2 where p2.ID=p1.ID and p2.mes='DEC' and p2.hora=p1.hora),
MAX=(select MAX from pruebas p2 where p2.ID=p1.ID and p2.mes='DEC' and p2.hora=p1.hora)
where p1.mes='JAN'
and p1.ID=2300
  #7 (permalink)  
Antiguo 21/01/2009, 22:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Actualizar campos de una tabla apartir de otros

Solo como aclaracion: PK = Primary Key, y es la columna o conjunto de columnas que IDENTIFICAN como unico tu registro.

Saludos
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 13:47.