[ Foro de SQL (y MySQL) ]

URGENTE AYUDA CON CONSULTA

21-Mar-2017 08:52
Invitado (XD)
1 Respuestas

buenas alguien me ayudaría con esto estoy programando una web tengo 2 tablas en una inserto los pedidos luego mediante un IGNORE INTO inserto los códigos de los productos en la otra tabla stock para evitar repeticiones de códigos(la tabla pedidos es como para seguimiento y la stock es para ordenar ya los datos) ahora en mi tabla stock utilizo la siguiente consulta para agregar las cantidades sumadas de los productos del pedido según su estado 2.

$sql = "UPDATE stock SET stock.cantidades= (SELECT sum(pe.cantidad)+cantidades FROM pedidos pe INNER JOIN productos pro ON pe.producto=pro.codigopro INNER JOIN estados es ON pe.estado=es.idestado INNER JOIN empresas em ON pe.rucempresa=em.ruc WHERE em.ruc='$ruc' AND pe.producto=stock.idproducto AND pe.estado='2' group by pro.codigopro)";

todo va perfecto me agrupa los código suma las cantidades y todo bien pero solo con la variable de momento que es el $ruc, es decir paso el valor del ruc de la empresa y todo bien me suman todo, ahora selecciono otra empresa también sumas y todo pero los demás registros se vuelven cero y así solo me suma la fila de turno mientras las otra tantas las convite en ceros y no se que hacer le indico todo prácticamente en esa consulta pero sigue sin darme el resultado que necesito que es la suma sin borrar las otras¿ que le estoy indicando mal? o mejor dicho ¿que no le estoy indicando?
tambien hice esta que es lo mismo
UPDATE stock SET cantidades=(SELECT sum(pedidos.cantidad)+cantidades FROM pedidos WHERE stock.idproducto=pedidos.producto AND pedidos.rucempresa='10478341063' AND pedidos.estado='2')


02-Apr-2017 12:16
Nacho Cabanes (+32)

Si la duda es la que creo entender, tu UPDATE externo no tiene un WHERE que restrinja la búsqueda sólo a ciertos datos, por lo que tratará de modificar todos los existentes.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)