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

Duda con UPDATE

Estas en el tema de Duda con UPDATE en el foro de SQL Server en Foros del Web. Hola, tengo un problema, no se como dar solución a una operación que quiero hacer. Os lo explico. Tengo una tabla como esta Color --- ...
  #1 (permalink)  
Antiguo 03/03/2009, 13:03
 
Fecha de Ingreso: enero-2009
Mensajes: 12
Antigüedad: 15 años, 3 meses
Puntos: 0
Duda con UPDATE

Hola, tengo un problema, no se como dar solución a una operación que quiero hacer. Os lo explico.

Tengo una tabla como esta

Color --- Paquete --- Cantidad --- Tipo
R--------1----------10-------1
R--------1----------12-------2
V--------5-----------8--------1
V--------5----------10-------2
A--------4----------16-------1

y quiero hacer un UPDATE sobre esa misma tabla de manera que quede de la siguiente manera.

Color --- Paquete --- Cantidad --- Tipo
R--------1----------22-------1
V--------5----------18-------1
A--------4----------16-------1

Es decir que para un mismo color y un mismo paquete de tipos distintos salga un único registro de tipo 1 con las cantidades sumadas.

Se trataria de hacerlo con un UPDATE. Supongo que será creando dos instancias de la misma tabla para ir comparandolas, pero no lo veo demasiado claro.

Agradecería mucho la ayuda,

un saludo
  #2 (permalink)  
Antiguo 03/03/2009, 17:03
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda con UPDATE

No puedes hacer un simple UPDATE, porque tienes 2 registros, debes crear una tabla nueva (tal vez temporal) con la suma de tus registros y posteriormente substituir todos esos registros con los de la tabla temporal.

Revisa bien que tanto color, como paquete, puede acumularse a la suma de cantidad, pero tienes un TIPO que es (o puede ser), diferente.
  #3 (permalink)  
Antiguo 04/03/2009, 01:51
 
Fecha de Ingreso: enero-2009
Mensajes: 12
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Duda con UPDATE

Realmente el segundo de los dos registros no lo quiero actualizar, ese lo voy a eliminar. No se si me explico solo quiero dejar los de tipo 1 con la cantidad de los que coincidien en color y paquete sumadas.

Despues del UPDATE metere un DELETE para borrar los registros tipo 2, porque ya no me interesan

No se si me explico.

Gracias
  #4 (permalink)  
Antiguo 04/03/2009, 22:41
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda con UPDATE

Bueno, si vas a eliminar los de tipo 2, entonces es mucho mas facil, tomando como premisa que solo te QUEDARAS con los de tipo 1 (si existen tipos 3,4, what else, se eliminaran).

** te sugiero que hagas pruebas, ya que no tengo forma de probar el codigo **

UPDATE tutabla SET cantidad = x.cantidad
FROM tubla a join (select color, paquete, sum(cantidad) as cantidad from tutabla where tipo > 1 group by color, paquete) as x on a.color = x.color and a.paquete = x.paquete
WHERE tipo = 1

-- En este punto, revisas que se hayan acumulado tus valores en registros de tipo 1

SELECT * FROM tutabla WHERE tipo = 1

Si esto es correcto

DELETE tutabla WHERE tipo > 1
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 11:31.