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

ayuda con suma de campos de diferente tabla!!!!!!!

Estas en el tema de ayuda con suma de campos de diferente tabla!!!!!!! en el foro de Mysql en Foros del Web. Hola como estan necesito ayuda con la sentencia update he visto ya algunos temas relacionados pero no encuentro la solucion a mi problemas llevo muchos ...
  #1 (permalink)  
Antiguo 05/08/2010, 09:35
Avatar de pattysweet  
Fecha de Ingreso: mayo-2010
Ubicación: Tabasco, México
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Sonrisa ayuda con suma de campos de diferente tabla!!!!!!!

Hola como estan necesito ayuda con la sentencia update he visto ya algunos temas relacionados pero no encuentro la solucion a mi problemas llevo muchos dias tratando de resolver este problema.... es el sig.

Tengo 2 tablas una de articulos y otra de entradas, el campo que los une es serialemp y serial_emp_2 (que viene siendo el codigo del articulo), ahora bien quiero sumar el campo cantidad1 (de la tabla entradas) al de cantidad (de la tabla articulos) tenia este codigo pero no hace nada!!!!! Alguien podría ayudarme es q apenas estoi aprendiendo a programar!!!!

Se los agradeceria muchisimo!!!!!

Codigo mysql:
if ($_POST['serial_emp']== $_POST ['serialemp'])
{
$actualizacion2 = "UPDATE `activo` SET `cantidad` = `cantidad` - '.$_POST ['serial'].' WHERE `activo`.`serialemp` = '.$_POST ['serial_emp'].' ";
$actualizar2 = mysql_query($actualizacion2, $Activos3) or die(mysql_error());
}
  #2 (permalink)  
Antiguo 07/08/2010, 07:16
Avatar de yense  
Fecha de Ingreso: febrero-2008
Ubicación: Perú Lima
Mensajes: 340
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

bueno si eres nuevo te recomiendo que primero as un select de tu "cantidad" una vez tenga el valor recién restalo y la respuesta recién mándalo para que actualize
  #3 (permalink)  
Antiguo 07/08/2010, 09:10
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

Cita:
Iniciado por pattysweet Ver Mensaje
Hola como estan necesito ayuda con la sentencia update he visto ya algunos temas relacionados pero no encuentro la solucion a mi problemas llevo muchos dias tratando de resolver este problema.... es el sig.

Tengo 2 tablas una de articulos y otra de entradas, el campo que los une es serialemp y serial_emp_2 (que viene siendo el codigo del articulo), ahora bien quiero sumar el campo cantidad1 (de la tabla entradas) al de cantidad (de la tabla articulos) tenia este codigo pero no hace nada!!!!! Alguien podría ayudarme es q apenas estoi aprendiendo a programar!!!!

Se los agradeceria muchisimo!!!!!

Codigo mysql:
if ($_POST['serial_emp']== $_POST ['serialemp'])
{
$actualizacion2 = "UPDATE `activo` SET `cantidad` = `cantidad` - '.$_POST ['serial'].' WHERE `activo`.`serialemp` = '.$_POST ['serial_emp'].' ";
$actualizar2 = mysql_query($actualizacion2, $Activos3) or die(mysql_error());
}
puedes poner las querys

saludos
  #4 (permalink)  
Antiguo 10/08/2010, 12:32
Avatar de pattysweet  
Fecha de Ingreso: mayo-2010
Ubicación: Tabasco, México
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

Cita:
Iniciado por saumal20 Ver Mensaje
puedes poner las querys

saludos
mm no entiendo las querys?? la consulta que hago o como??
  #5 (permalink)  
Antiguo 11/08/2010, 08:22
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

Cita:
Iniciado por pattysweet Ver Mensaje
mm no entiendo las querys?? la consulta que hago o como??
los comandos que usas para crear tu base de datos...tb llamado query, son lo ke estan en .sql, ke programa estas usando para hacer tus consultas?
  #6 (permalink)  
Antiguo 11/08/2010, 08:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

SELECT SUM(articulos.cantidad1 + IFNULL(entradas.cantidad,0)) SUMA FROM articulos LEFT JOIN entradas ON articulos.serialemp = entradas.serial_emp_2

Esta consulta debería mostrarte la suma. Entiendo que en la tabla artículos están todos los artículos.

pero esto es una selección. Dinos por qué quieres actualizar, guardar esa suma en un campo. Tal vez no te haya entendido. Explícanos con datos un ejemplo de lo que quieres hacer.
  #7 (permalink)  
Antiguo 11/08/2010, 09:21
Avatar de pattysweet  
Fecha de Ingreso: mayo-2010
Ubicación: Tabasco, México
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

ok miren pues estoy usando appserv que incluye los tres programas el phpmyadmin, apache y msql, para programar estoy usando el phpdesigner.
Ya logre que sumara los campos, necesito que sume ya que es para el area de almacen y necesito que cada vez que se compre un articulo(entrada) se sume a la existencia que ocmo dije ya logre que sume cada vez que hay una entrada ya que lo manejo por codigo de articulo. Lo hace con estas lineas:

Cita:
$cantidad2 = $_POST['cantidad1'];
$actualizacion = "UPDATE activo SET cantidad = cantidad + $cantidad2 WHERE serialemp = $serial_emp_2";
$actualizar = mysql_query($actualizacion, $Activos3) or die(mysql_error());


Inserta los datos de esta manera:
Cita:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$status = "Abierto";

$serialemp = isset( $_POST['serialemp'] ) ? $_POST['serialemp'] : '';
$serialemp = mysql_real_escape_string($serialemp);
$result = mysql_query("SELECT * FROM `activo` WHERE `serialemp` = '".$serialemp."'") or die(mysql_error());
if (mysql_num_rows($result)!= 0)
{
header("Location: registro_repetido.php");

}

$insertSQL = sprintf("INSERT INTO entradas (serial_emp_2, descripcion, fecha_entrada, cantidad1, ci_receptor, nombre_receptor, status) VALUES (%s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($serial_emp_2, "int"),
GetSQLValueString($_POST['descripcion'], "text"),
GetSQLValueString($_POST['fecha_entrada'], "date"),
GetSQLValueString($_POST['cantidad1'], "int"),
GetSQLValueString($_POST['ci_receptor'], "text"),
GetSQLValueString($_POST['nombre_receptor'], "text"),
GetSQLValueString($status, "text"));
y la tabla salidas:
Cita:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$status = "Abierto";
$cedula = $_POST['cedula1']."-".$_POST['ci_salida'];

$insertSQL = sprintf("INSERT INTO salidas (serial_emp, descripcion, serial, proveedor, direccion, telefono, motivo_salida, fecha_salida, ci_salida, nombre_salida, status) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['serial_emp'], "int"),
GetSQLValueString($_POST['descripcion'], "text"),
GetSQLValueString($_POST['serial'], "text"),//aki me guarda la cantidad
GetSQLValueString($_POST['proveedor'], "text"),
GetSQLValueString($_POST['direccion'], "text"),
GetSQLValueString($_POST['telefono'], "text"),
GetSQLValueString($_POST['motivo_salida'], "text"),
GetSQLValueString($_POST['fecha_salida'], "date"),
GetSQLValueString($cedula, "text"),
GetSQLValueString($_POST['nombre_salida'], "text"),
GetSQLValueString($status, "text"));

mysql_select_db($database_Activos3, $Activos3);

$cantidad2 = $_POST['serial'];
$cantidad = $_POST['cantidad'];
$serialemp = $_POST['serial_emp'];
while($cantidad >= $cantidad2){
$actualizacion1 = "UPDATE activo SET cantidad = cantidad - $cantidad2 WHERE serialemp = $serial_emp ";
$actualizar1 = mysql_query($actualizacion1, $Activos3) or die(mysql_error()); }
El problema que tengo es que para restar tengo que condicionar mas por ejemplo:
si en mi existencia tengo 1 y alguien quiere sacar 2, que el programa le diga que la salida es mayor a la existencia y por consiguiente no inserte ninguna salida en la tabla. No se si me explique bien. Lo intente con un while trayendo las variables por POST pero no me hacia nada!!!

Última edición por pattysweet; 11/08/2010 a las 09:27
  #8 (permalink)  
Antiguo 13/08/2010, 15:28
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

uhm...pues mira yo hago asi en lo kes mercaderias:

mis tablas compras y detallecompras:

Código MySQL:
Ver original
  1. -- Tabla28: compras --
  2. create table IF NOT EXISTS compras(
  3. idcompras int(20) unsigned not null,
  4. idlocales int(4) unsigned not null,
  5. fechacompras date not null,
  6. horacompras time not null,
  7. fechapagoscompras timestamp null,
  8. idtipocomprobantes int(4) unsigned not null,
  9. numeroseries int(4) unsigned not null,
  10. numerocomprobantes int(12) unsigned zerofill not null,
  11. idformapagos int(4) unsigned not null,
  12. idtipopagos int(4) unsigned not null,
  13. subtotalcompras float(5,3) unsigned not null,
  14. idigv int(4) unsigned not null,
  15. igvcompras float(5,3) unsigned not null,
  16. montototalcompras float(5,3) unsigned not null,
  17. idclientes int(4) unsigned null,
  18. anulacioncompras tinyint(1) null,
  19. fechaanulacioncompra timestamp null,
  20. motivoanulacioncompras text null,
  21. vendedorcompras varchar(50) null,
  22. foreign key(idtipocomprobantes) references tipocomprobantes(idtipocomprobantes) on UPDATE cascade on Delete Cascade,
  23. foreign key(idformapagos) references formapagos(idformapagos) on UPDATE cascade on Delete Cascade,
  24. foreign key(idtipopagos) references tipopagos(idtipopagos) on UPDATE cascade on Delete Cascade,
  25. foreign key(idlocales) references locales(idlocales) on UPDATE cascade on Delete Cascade,
  26. foreign key(idclientes) references clientes(idclientes) on UPDATE cascade on Delete Cascade,
  27. primary key(idcompras, idlocales, fechacompras, horacompras, numeroseries, numerocomprobantes),
  28. index idx_compras(idcompras, idlocales, fechacompras, horacompras, numeroseries, numerocomprobantes)
  29.  
  30.  
  31. -- Tabla29: detallecompras --
  32. create table IF NOT EXISTS detallecompras(
  33. iddetallecompras int(4) unsigned not null,
  34. idcompras int(20) unsigned not null,
  35. idmercaderias int(10) unsigned null,
  36. idcombos int(10) unsigned null,
  37. idrecetas_preparadas int(10) null,
  38. preciomercaderias float(5,3) not null,
  39. cantidadmercaderias float(5,3) unsigned not null,
  40. idtipounidades int(4) unsigned not null,
  41. subtotal float(5,3) unsigned not null,
  42. foreign key(idtipounidades) references tipounidades(idtipounidades) on UPDATE cascade on Delete Cascade,
  43. foreign key(idcompras) references compras(idcompras) on UPDATE cascade on Delete Cascade,
  44. foreign key(idmercaderias) references mercaderias(idmercaderias) on UPDATE cascade on Delete Cascade,
  45. primary key(iddetallecompras, idcompras, idmercaderias),
  46. index idx_detallecompras(iddetallecompras, idcompras, idmercaderias)

.- io al momento de iamar una compras iamo a procedures, ke son 1 para resgistrar 1 compra(sea credito o contado), otro ke eliminar la compra(en si la deshabilita) y otro ke me confirma el pago. En detalle de compra tengo un procedure ke me insreta el detalle:
  #9 (permalink)  
Antiguo 13/08/2010, 15:29
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

Código MySQL:
Ver original
  1. -- Tabla7: compras  --
  2. DELIMITER $$
  3. -- PA de insertar compra a contado
  4. create procedure PA_7_insertar_compras_contado(idlocales int(4), fechacompras date, horacompras time, idtipocomprobantes int(4), idformapagos int(4), idtipopagos int(4), subtotalcompras float(5,3), valorigv float(3,3), idigv int(4), igvcompras float(5,3), montototalcompras float(5,3), idclientes int(4), vendedorcompras varchar(50))
  5.     BEGIN
  6.     -- DECLARE fehocompras timestamp;
  7.     -- select CURRENT_timestamp() into fehocompras;
  8.     -- INSERT INTO compras(idlocales, fehocompras, fehopagocompras, idtipocomprobantes, numeroseries, numerocomprobantes, idformapagos, idtipopagos, subtotalcompras, valorigv, idigv, igvcompras, montototalcompras, idclientes) VALUES (@idlocales, fehocompras, fehocompras, @idtipocomprobantes, @numeroseries, @numerocomprobantes, @idformapagos, @idtipopagos, @subtotalcompras, @valorigv, @idigv, @igvcompras, @montototalcompras, @idclientes);
  9.     -- Declaramos variables necesarias
  10.     DECLARE ultimaserie int(4);
  11.     DECLARE ultimocomprobantes int(12);
  12.     -- obtenemos el ultimo numero de serie por el tipocomprobante
  13.     select numeroseries into ultimaserie
  14.     from tipocomprobantes
  15.     where idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales
  16.     order by numeroseries desc limit 1;
  17.     -- obtenemos el ultimo numero de comprobante por el tipocomprobante
  18.     select numerocomprobante into ultimocomprobantes
  19.     from tipocomprobantes
  20.     where idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales
  21.     order by numeroseries desc limit 1;
  22.     -- comparamos si el numero de comprobante es menor 999999999999(ultimo numero posible)
  23.     IF numerocomprobantes >= 999999999999 then
  24.         -- si es si
  25.         --actualizamos el nuevo numero de serie
  26.         UPDATE tipocomprobantes
  27.         SET numeroseries = ultimaserie + 1
  28.         WHERE idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales;
  29.         -- actualizamos el numero de comprobante a 1
  30.         UPDATE tipocomprobantes
  31.         SET numerocomprobante = 1
  32.         WHERE idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales;
  33.         -- Obtenemos el nuevo ultimo numero de comprobante
  34.         select numerocomprobante into ultimocomprobantes
  35.         from tipocomprobantes
  36.         WHERE idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales
  37.         order by numerocomprobante desc limit 1;
  38.         -- Obtenemos el nuevo ultimo numero de serie
  39.         select numeroseries into ultimaserie
  40.         from tipocomprobantes
  41.         where idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales
  42.         order by numeroseries desc limit 1;
  43.          -- insertamos la nueva compra
  44.         INSERT INTO compras(idlocales, fechacompras, horacompras, fehopagocompras, idtipocomprobantes, numeroseries, numerocomprobantes, idformapagos, idtipopagos, subtotalcompras, valorigv, idigv, igvcompras, montototalcompras, idclientes, vendedorcompras) VALUES (@idlocales, @fechacompras, @horacompras, @fechacompras, @idtipocomprobantes, ultimaserie, ultimocomprobantes, @idformapagos, @idtipopagos, @subtotalcompras, @valorigv, @idigv, @igvcompras, @montototalcompras, @idclientes, @vendedorcompras);
  45.     ELSE
  46.         INSERT INTO compras(idlocales, fechacompras, horacompras, fehopagocompras, idtipocomprobantes, numeroseries, numerocomprobantes, idformapagos, idtipopagos, subtotalcompras, valorigv, idigv, igvcompras, montototalcompras, idclientes, vendedorcompras)) VALUES (@idlocales, @fechacompras, @horacompras, @fechacompras, @idtipocomprobantes, ultimaserie, ultimocomprobantes, @idformapagos, @idtipopagos, @subtotalcompras, @valorigv, @idigv, @igvcompras, @montototalcompras, @idclientes, @vendedorcompras);
  47.     END IF;
  48.     END$$
  49. -- PA de insertar compra a credito
  50. create procedure PA_7_insertar_compras_credito(idlocales int(4), fechacompras date, horacompras time, idtipocomprobantes int(4), idformapagos int(4), idtipopagos int(4), subtotalcompras float(5,3), valorigv float(3,3), idigv int(4), igvcompras float(5,3), montototalcompras float(5,3), idclientes int(4), vendedorcompras varchar(50))
  51.     BEGIN
  52.     -- Declaramos variables necesarias
  53.     DECLARE ultimaserie int(4);
  54.     DECLARE ultimocomprobantes int(12);
  55.     -- obtenemos el ultimo numero de serie por el tipocomprobante
  56.     select numeroseries into ultimaserie
  57.     from tipocomprobantes
  58.     where idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales
  59.     order by numeroseries desc limit 1;
  60.     -- obtenemos el ultimo numero de comprobante por el tipocomprobante
  61.     select numerocomprobante into ultimocomprobantes
  62.     from tipocomprobantes
  63.     where idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales
  64.     order by numeroseries desc limit 1;
  65.     -- comparamos si el numero de comprobante es menor 999999999999(ultimo numero posible)
  66.     IF numerocomprobantes >= 999999999999 then
  67.         -- si es si
  68.         --actualizamos el nuevo numero de serie
  69.         UPDATE tipocomprobantes
  70.         SET numeroseries = ultimaserie + 1
  71.         WHERE idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales;
  72.         -- actualizamos el numero de comprobante a 1
  73.         UPDATE tipocomprobantes
  74.         SET numerocomprobante = 1
  75.         WHERE idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales;
  76.         -- Obtenemos el nuevo ultimo numero de comprobante
  77.         select numerocomprobante into ultimocomprobantes
  78.         from tipocomprobantes
  79.         WHERE idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales
  80.         order by numerocomprobante desc limit 1;
  81.         -- Obtenemos el nuevo ultimo numero de serie
  82.         select numeroseries into ultimaserie
  83.         from tipocomprobantes
  84.         where idtipocomprobantes = @idtipocomprobantes AND idlocales = @idlocales
  85.         order by numeroseries desc limit 1;
  86.          -- insertamos la nueva compra
  87.         INSERT INTO compras(idlocales, fechacompras, horacompras, fechapago, idtipocomprobantes, numeroseries, numerocomprobantes, idformapagos, idtipopagos, subtotalcompras, igvcompras, montototalcompras, idclientes, vendedorcompras) VALUES (@idlocales, @fechacompras, @horacompras, "0000-00-00 00:00:00",@idtipocomprobantes, ultimaserie, ultimocomprobantes, @idformapagos, @idtipopagos, @subtotalcompras, @igvcompras, @montototalcompras, @idclientes, @vendedorcompras);
  88.     ELSE
  89.         INSERT INTO compras(idlocales, fechacompras, horacompras, fechapago, idtipocomprobantes, numeroseries, numerocomprobantes, idformapagos, idtipopagos, subtotalcompras, igvcompras, montototalcompras, idclientes, vendedorcompras) VALUES (@idlocales, @fechacompras, @horacompras, "0000-00-00 00:00:00",@idtipocomprobantes, ultimaserie, ultimocomprobantes, @idformapagos, @idtipopagos, @subtotalcompras, @igvcompras, @montototalcompras, @idclientes, @vendedorcompras);
  90.     END IF;
  91.     END$$
  92. -- Pa de borrar
  93. -- Pa de actualizar pago de compras
  94. create procedure PA_7_actualizar_compras_pago(idlocales int(4), idtipocomprobantes int(4), numeroseries int(4), numerocomprabante int(20), fechapagoscompras date)
  95.     BEGIN
  96.         UPDATE compras
  97.         SET  fechapagoscompras = @fechapagoscompras
  98.         WHERE idlocales = @idlocales AND idtipocomprobantes = @idtipocomprobantes AND numeroseries = @numeroseries AND numerocomprobantes = @numerocomprobantes;
  99.     END$$
  100. -- Pa de actualizar anulacion de compras
  101. create procedure PA_7_actualizar_compras_anulacion(idcompras int(20), idlocales int(4), numeroseries int(4), numerocomprobantes int(12), idtipocomprobantes int(4), fechaanulacioncompra date, motivoanulacioncompras text)
  102.     BEGIN
  103.         DECLARE numeroscompras int(20);
  104.         select idcompras into @numeroscompras
  105.         from compras
  106.         where idlocales = @idlocales AND idtipocomprobantes = @idtipocomprobantes AND idtipocomprobantes = @idtipocomprobantes;
  107.         UPDATE compras
  108.         SET anulacioncompras = 1 AND fechaanulacioncompra = @fechaanulacioncompra AND motivoanulacioncompras = @motivoanulacioncompras
  109.         WHERE idlocales = @idlocales AND idtipocomprobantes = @idtipocomprobantes AND numerocomprobantes = @numerocomprobantes AND numeroseries= @numeroseries;
  110.         UPDATE detallecompras
  111.         SET idcombos = idcombos
  112.         WHERE numeroscompras = @numeroscompras;
  113.     END$$
  114. DELIMITER ;
  115.  
  116. -- Tabla8: detallescompras
  117. DELIMITER $$  --
  118. -- PA de insertar
  119. create procedure PA_8_insertar_detallecompras(idcompras int(10), idmercaderias int(10), idcombos int(10), idrecetas_preparadas int(10), preciomercaderias float(5,3), cantidadmercaderias float(5,3), idtipounidades int(4), subtotal float(5,3))
  120.     BEGIN
  121.         INSERT INTO detallecompras(idcompras, idproductos, precioproductos, cantidadproductos, idtipounidades, subtotal) VALUES (idcompras, idproductos, precioproductos, cantidadproductos, idtipounidades, subtotal);
  122.     END$$
  123. -- Pa de borrar
  124. -- Pa de actualizar
  125. DELIMITER ;

estos los iamo desde php claro esta
  #10 (permalink)  
Antiguo 13/08/2010, 15:29
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

para controlar lo de la estokead io iamo a triggers, ke se activan en la tabla detallecompra y otro cuando se anule la compra, y me actualizan la cantidad de mercaderia:

Código MySQL:
Ver original
  1. -- Tabla7: detallecompras --
  2. -- TIG disminuir cantidad mercaderia en mercaderias cuando se venda
  3. DELIMITER $$
  4. create trigger TIG_disminuir_mercaderias_compras AFTER INSERT ON detallecompras
  5.         BEGIN
  6.             -- set @idcompras
  7.             UPDATE mercaderias
  8.             SET cantidadmercaderias = cantidadmercaderias - NEW.cantidadmercaderias
  9.             WHERE idmercaderias = NEW.idmercaderias AND idalmacenes IN (select C.idalmacenes
  10.                                                                                             from compras c, almacenes a, locales l
  11.                                                                                             where l.idlocales = a.idlocales AND
  12.                                                                                                     c.idalmacenes = a.idalmacenes AND
  13.                                                                                                     idcompras = NEW.idcompras);
  14.         END$$
  15. DELIMITER ;
  16. --TIG aumentar cantidad mercaderia en mercaderias cuando se anule la compra
  17. DELIMITER $$
  18. create trigger TIG_aumentar_mercaderias_compras BEFORE UPDATE ON detallecompras
  19.         BEGIN
  20.             UPDATE mercaderias
  21.             SET cantidadmercaderias = cantidadmercaderias + OLD.cantidadmercaderias
  22.             WHERE idmercaderias = OLD.idmercaderias AND idalmacenes IN (select C.idalmacenes
  23.                                                                                             from compras c, almacenes a, locales l
  24.                                                                                             where l.idlocales = a.idlocales AND
  25.                                                                                                     c.idalmacenes = a.idalmacenes AND
  26.                                                                                                     idcompras = NEW.idcompras);
  27.         END$$
  28. DELIMITER ;

lo ulimo ke kieres hacer, si no hay stock lo puedes hacer contando ctos productos te kedan y de ahi evaluar, pero eso seria mejor hacerlo en php.

Espero te haya ayudado...cualkier duda escribes...saludos

P.D: sorry por la tres rptas pero no entraba =P
  #11 (permalink)  
Antiguo 16/08/2010, 09:38
Avatar de pattysweet  
Fecha de Ingreso: mayo-2010
Ubicación: Tabasco, México
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

muchas gracias analizare bien todo weno de hecho lo que estoy haciendo no tiene nada que ver con vender, tan solo es administracion de un almacen para una empresa, pero de igual maersa me servira algo gracias otra vez creo que lo ultimo me da una idea de lo que tengo que hacer, pero una preguntota en la ultima respuesta las variables que pones con OLD las tienes declaradas como campos o como???
  #12 (permalink)  
Antiguo 19/08/2010, 12:19
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 4 meses
Puntos: 0
De acuerdo Respuesta: ayuda con suma de campos de diferente tabla!!!!!!!

Cita:
Iniciado por pattysweet Ver Mensaje
muchas gracias analizare bien todo weno de hecho lo que estoy haciendo no tiene nada que ver con vender, tan solo es administracion de un almacen para una empresa, pero de igual maersa me servira algo gracias otra vez creo que lo ultimo me da una idea de lo que tengo que hacer, pero una preguntota en la ultima respuesta las variables que pones con OLD las tienes declaradas como campos o como???
OLD y NEW, se usan en triggers...al valor antiguo o nuevo despues de una accion...lo ke te pase lo puede adaptar a tu almacen...saludos

Etiquetas: Ninguno
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 09:43.