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

ayuda en SINTAXIS UPDATE

Estas en el tema de ayuda en SINTAXIS UPDATE en el foro de Bases de Datos General en Foros del Web. Buenas a todos, necesito realizar un UPDATE y no se como utilizar la funcion SUM tengo las siguientes tablas: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original ...
  #1 (permalink)  
Antiguo 17/07/2010, 17:09
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
ayuda en SINTAXIS UPDATE

Buenas a todos, necesito realizar un UPDATE y no se como utilizar la funcion SUM

tengo las siguientes tablas:

Código SQL:
Ver original
  1. CREATE TABLE ARTICULO
  2. (
  3.    COD_ART              CHAR(2) NOT NULL,
  4.    NOM_ART              CHAR(5),
  5.    VAL_ART              FLOAT,+
  6.    CAN_EXISTENTE INT,
  7.    PRIMARY KEY (COD_ART)
  8. );

Tabla factura:

Código SQL:
Ver original
  1. CREATE TABLE FACTURA
  2. (
  3.    COD_FAC              CHAR(2) NOT NULL,
  4.    CED_CLI              CHAR(10) NOT NULL,
  5.    VAL_TOT_FAC          FLOAT,
  6.    FEC                  DATE,
  7.    PRIMARY KEY (COD_FAC)
  8. );

Y tabla articulos de la factura

Código SQL:
Ver original
  1. CREATE TABLE ARTICULO_FACTURA
  2. (
  3.    COD_ART              CHAR(2) NOT NULL,
  4.    COD_FAC              CHAR(2) NOT NULL,
  5.    CAN_ART              INT NOT NULL,
  6.    VAL_TOT_ART          FLOAT NOT NULL,
  7.    PRIMARY KEY (COD_ART, COD_FAC)
  8. );

En la tabla articulo tengo una cantidad existente, y lo que quiero es que en el momento de vender un numero determinado de articulos, me actualice en la tabla articulo el campo CAN_EXISTENTE, haciendole una resta

Lo habia planteado asi pero me sale un error:

Código SQL:
Ver original
  1. UPDATE ARTICULO a, ARTICULO_FACTURA af
  2. SET       a.CAN_EXISTENTE=a.CAN_EXISTENTE - SUM(af.CAN_ART)
  3. WHERE  a.COD_ART=af.COD_ART
  4. GROUP BY af.COD_ART;

No se si la funcion SUM este mal planteada o si no se pueda utilizar en un UPDATE

Agradezco la colaboracion, muchas gracias
  #2 (permalink)  
Antiguo 17/07/2010, 18:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda en SINTAXIS UPDATE

SUM() es una función agregada que sólo opera en la sentencia SELECT, por lo cual, para usarla en un UPDATE sólo puede darse si estás usandola en un SELECT que alimente ese UPDATE.
Código MySQL:
Ver original
  1. UPDATE ARTICULO a INNER JOIN
  2.     (SELECT COD_ART, SUM(CAN_ART) suma  
  3.     FROM ARTICULO_FACTURA  
  4.     GROUP BY COD_ART) af ON a.COD_ART = af.COD_ART
  5.        a.CAN_EXISTENTE=(a.CAN_EXISTENTE - af.suma);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sintaxis, 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 12:54.