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

actualizacion de una columna

Estas en el tema de actualizacion de una columna en el foro de Mysql en Foros del Web. Bueno llevo unos dias en que las consultas me estan matando... Necesito actualizar la columna debe de la tabla clientes añadiendo en ella el importe ...
  #1 (permalink)  
Antiguo 11/01/2008, 04:01
 
Fecha de Ingreso: enero-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
actualizacion de una columna

Bueno llevo unos dias en que las consultas me estan matando...

Necesito actualizar la columna debe de la tabla clientes añadiendo en ella el importe total de los pedidos realizados por cada cliente.

Espero me podais ayudar, gracias!

tabla clientes

CLIENTE_NO | int(4) | NO | PRI | 0 |
NOMBRE | varchar(25) | YES | | NULL |
LOCALIDAD | varchar(14) | YES | | NULL |
VENDEDOR_NO | int(4) | YES | MUL | NULL |
DEBE | float(9,2) | YES | | NULL |
HABER | float(9,2) | YES | | NULL |
LIMITE_CREDITO | float(9,2) | YES | | NULL |

tabla pedidos

PEDIDO_NO | int(4) | NO | PRI | 0 |
PRODUCTO_NO | int(4) | YES | MUL | NULL |
CLIENTE_NO | int(4) | YES | MUL | NULL |
UNIDADES | int(4) | YES | | NULL |
FECHA_PEDIDO | date | YES | | NULL |

tabla productos

PRODUCTO_NO | int(4) | NO | PRI | 0 |
DESCRIPCION | varchar(30) | YES | | NULL |
PRECIO_ACTUAL | float(8,2) | YES | | NULL |
STOCK_DISPONIBLE | int(9) | YES | | NULL |
  #2 (permalink)  
Antiguo 11/01/2008, 15:44
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 3 meses
Puntos: 2
Re: actualizacion de una columna

Hola deiv46,

Haz un
Código HTML:
SELECT CLIENTE_NO, SUM(UNIDADES*PRECIO_ACTUAL) as debe FROM pedidos LEFT JOIN productos USING (PEDIDO_NO)
Y luego lanzas updates por cada registro:
Código HTML:
UPDATE clientes SET DEBE=<debe> WHERE CLIENTE_NO=<cliente_no> 
Sin embargo.... permíteme un comentario. Cuando hagas sistemas de facturación o parecidos, es importante copiar toda la data de la factura al momento de hacer la transacción. Esto es básicamente porque si subes el precio de algún producto, no deberías afectar la deuda de los clientes (si por casualidad debieras ejecutar este proceso luego de la actualización del precio).
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 02:47.