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

Problemas con instrucción UPDATE

Estas en el tema de Problemas con instrucción UPDATE en el foro de Bases de Datos General en Foros del Web. Buenas tardes A ver si me podeis ayudar. Tengo 2 tablas no relacionadas: TABLA1: TAG, CantComprada, CantRecibida, CantDespachada TABLA2: TAG, NumVale,Fecha,Cantidad Lo que necesito es ...
  #1 (permalink)  
Antiguo 07/02/2014, 11:43
 
Fecha de Ingreso: febrero-2014
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Problemas con instrucción UPDATE

Buenas tardes

A ver si me podeis ayudar. Tengo 2 tablas no relacionadas:
TABLA1: TAG, CantComprada, CantRecibida, CantDespachada
TABLA2: TAG, NumVale,Fecha,Cantidad

Lo que necesito es que aparezca la cantidad de material despachado en la tabla 2, en el campo CantDespachada de la tabla1

Estoy intentando hacer algo asi
Código SQL:
Ver original
  1. UPDATE STOCK_INSTRUMENTS
  2. SET DispatchedQty =(SELECT SUM(Qty) FROM INSTRUMENTS_DISPATCHED t2
  3. WHERE TAG = t2.TAG)

Pero me dice que la operación debe ser una consulta actualizable.
Una segunda opción, y es la que tengo preparada, es usar una tabla intermedia, pero debido al numero de registros puede llegar a ser muy lenta

Alguna idea??
Muchas gracias a todos

Última edición por PrfTovarich; 07/02/2014 a las 11:55
  #2 (permalink)  
Antiguo 07/02/2014, 13:14
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con instrucción UPDATE

seria algo asi:

Código SQL:
Ver original
  1. TABLA1: TAG, CantComprada, CantRecibida, CantDespachada
  2. TABLA2: TAG, NumVale,Fecha,Cantidad
  3.  
  4.  
  5. UPDATE tabla1
  6. SET cantdespachada=t1.cantidad
  7. FROM
  8. (
  9. SELECT cantidad,tag FROM tabla2
  10. ) AS t1 WHERE tabla1.tag=t1.tag
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 07/02/2014, 14:38
 
Fecha de Ingreso: febrero-2014
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Problemas con instrucción UPDATE

Gracias Libra, seria algo asi
Código SQL:
Ver original
  1. UPDATE STOCK_INSTRUMENTS
  2. SET DispatchedQty=t1.Qty FROM
  3. (
  4. SELECT Qty,tag FROM INSTRUMENTS_DISPATCHED) AS t1 WHERE STOCK_INSTRUMENTS.tag=t1.tag
Pero me un error de sintaxis, falta operador en t1.Qty
Voy a seguir probando con esto, debe ser un fallo absurdo que no veo

Muchas gracias

Última edición por gnzsoloyo; 07/02/2014 a las 14:55
  #4 (permalink)  
Antiguo 07/02/2014, 15:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con instrucción UPDATE

que manejador de base de datos estas usando???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 07/02/2014, 22:20
 
Fecha de Ingreso: febrero-2014
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Problemas con instrucción UPDATE

Estoy trabajando con Access. Queria haber probado con otro, pero en el curro tenemos los PCs capados y no se nos permite instalar nada
  #6 (permalink)  
Antiguo 08/02/2014, 20:02
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con instrucción UPDATE

entonces por eso la sentencia que te di no funciona, la sentencia que te pase es para sql server.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 09/02/2014, 08:00
 
Fecha de Ingreso: febrero-2014
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Problemas con instrucción UPDATE

Me lo imaginaba Libras. Al final he usado tablas intermedias.

Muchas gracias

Etiquetas: select, tabla, update
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:42.