Como calcular una fórmula de 3 campos de 3 tablas distintas en php

A ver tengo 3 tablas una de pedido de productos otra de inventario de productos y otra de ventas de productos, hago 3 consultas de cada tabla para calcular el total pedido, total vendido y total inventariado agrupado por producto, hasta aquí todo bien, lo que yo querría es que me calculara por cada producto por cada fila de cada consulta la fórmula cuadre = ventas - ( pedidos - Inventariado).

Te paso como lo tengo a ver si me entiendes

$usuario_pedidos = "0";
if (isset($_POST["centro"])) {
$usuario_pedidos = $_POST["centro"];
}
$familia_pedidos = "0";
if (isset($_POST["familia"])) {
$familia_pedidos = $_POST["familia"];
}
$fecha1_pedidos = "null";
if (isset($_POST["fecha1"])) {
$fecha1_pedidos = $_POST["fecha1"];
}
$fecha2_pedidos = "null";
if (isset($_POST["fecha2"])) {
$fecha2_pedidos = $_POST["fecha2"];
}
mysql_select_db($database_conexion, $conexion);
$query_pedidos = sprintf("SELECT Idproducto, Intcategoria, Idusuario , SUM(Intcantidad) as sumapedido FROM tblcarrito WHERE tblcarrito.Idusuario = %s AND tblcarrito.Intcategoria = %s AND tblcarrito.fchpedido >= %s AND tblcarrito.fchpedido <= %s AND tblcarrito.IntTransaccionEfectuada = 1 GROUP BY Idproducto ORDER BY tblcarrito.Idproducto", GetSQLValueString($usuario_pedidos, "int"),GetSQLValueString($familia_pedidos, "int"),GetSQLValueString($fecha1_pedidos, "date"),GetSQLValueString($fecha2_pedidos, "date"));
$pedidos = mysql_query($query_pedidos, $conexion) or die(mysql_error());
$row_pedidos = mysql_fetch_assoc($pedidos);
$totalRows_pedidos = mysql_num_rows($pedidos);
?>

<?php
$usuario_Inventariado = "0";
if (isset($_POST["centro"])) {
$usuario_Inventariado = $_POST["centro"];
}
$familia_Inventariado = "0";
if (isset($_POST["familia"])) {
$familia_Inventariado = $_POST["familia"];
}
$fecha1_Inventariado = "null";
if (isset($_POST["fecha1"])) {
$fecha1_Inventariado = $_POST["fecha1"];
}
$fecha2_Inventariado = "null";
if (isset($_POST["fecha2"])) {
$fecha2_Inventariado = $_POST["fecha2"];
}
mysql_select_db($database_conexion, $conexion);
$query_Inventariado = sprintf("SELECT Idproducto, SUM(Intcantidad) as sumainventario FROM tblinventario WHERE tblinventario.Idusuario = %s AND tblinventario.Intcategoria = %s AND tblinventario.Fchinventario >= %s AND tblinventario.Fchinventario <= %s AND tblinventario.Intenviado = 1 GROUP BY Idproducto ORDER BY tblinventario.Idproducto", GetSQLValueString($usuario_Inventariado, "int"),GetSQLValueString($familia_Inventariado, "int"),GetSQLValueString($fecha1_Inventariado, "date"),GetSQLValueString($fecha2_Inventariado, "date"));
$Inventariado = mysql_query($query_Inventariado, $conexion) or die(mysql_error());
$row_Inventariado = mysql_fetch_assoc($Inventariado);
$totalRows_Inventariado = mysql_num_rows($Inventariado);

$usuario_ventas = "0";
if (isset($_POST["centro"])) {
$usuario_ventas = $_POST["centro"];
}
$familia_ventas = "0";
if (isset($_POST["familia"])) {
$familia_ventas = $_POST["familia"];
}
$fecha1_ventas = "null";
if (isset($_POST["fecha1"])) {
$fecha1_ventas = $_POST["fecha1"];
}
$fecha2_ventas = "null";
if (isset($_POST["fecha2"])) {
$fecha2_ventas = $_POST["fecha2"];
}
mysql_select_db($database_conexion, $conexion);
$query_ventas = sprintf("SELECT Idproducto, SUM(Intcantidad) as sumaventas FROM tblventas WHERE tblventas.Idusuario = %s AND tblventas.Intcategoria = %s AND tblventas.Fchventa >= %s AND tblventas.Fchventa <= %s AND tblventas.Intenviado = 1 GROUP BY tblventas.Idproducto ORDER BY tblventas.Idproducto", GetSQLValueString($usuario_ventas, "int"),GetSQLValueString($familia_ventas, "int"),GetSQLValueString($fecha1_ventas, "date"),GetSQLValueString($fecha2_ventas, "date"));
$ventas = mysql_query($query_ventas, $conexion) or die(mysql_error());
$row_ventas = mysql_fetch_assoc($ventas);
$totalRows_ventas = mysql_num_rows($ventas);
¿?>

Luego las muestro en una tabla.

<table width="100%" border="0">
<tr>
<td align="left" valign="top"><table width="100%" border="1" align="left">
<tr class="tablaprincipal">
<td>Nombre</td>
<td>Familia</td>
<td>Cant. Ped.</td>
</tr>
<?php do {?>
<tr>
¿<td><?php echo ObtenerNombreProducto ($row_pedidos['Idproducto']);?></td>
¿<td><?php echo ObtenerNombreCategoria ($row_pedidos['Intcategoria']);?></td>
¿<td><?php echo $row_pedidos['sumapedido']; $ped = $row_pedidos['sumapedido'];?></td>
</tr>
<?php } while ($row_pedidos = mysql_fetch_assoc($pedidos));?>
</table></td>
<td align="left" valign="top"><table width="100%" border="1" align="left">
<tr class="tablaprincipal">
<td>Cant. Vend.</td>
</tr>
<?php do {?>
<tr>
¿<td><?php echo $row_ventas['sumaventas']; $vent = $row_ventas['sumaventas'];?></td>
</tr>
<?php } while ($row_ventas = mysql_fetch_assoc($ventas));?>
</table>
</td>
<td align="left" valign="top"><table width="100%" border="1" align="left">
<tr class="tablaprincipal">
<td>Cant. Inv.</td>
<td>Cuadrado</td>
</tr>
<?php do {?>
<tr>
¿<td><?php echo $row_Inventariado['sumainventario']; $inv = $row_Inventariado['sumainventario'];?></td>
¿<td><?php echo ObtenerNombreProducto ($row_Inventariado['Idproducto']); echo (" "); $cuadre = $vent - ($ped - $inv); echo $cuadre?>
</td>
</tr>
<?php } while ($row_Inventariado = mysql_fetch_assoc($Inventariado));?>
</table></td>
</tr>
</table>

El problema es que cuadre no me da lo que toca porque los pedidos y ventas siempre me pone el primer registro solo.

Bueno espero te aclares.

1 Respuesta

Respuesta
1

Sin ver las tablas puede ser bastante imposible ayudarte. Te sugiero que te bajes el Navicat, crees las tablas y juegues con el Queryeditor para obtener lo que necesitas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas