Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Operaciones entre consultas de resumen

Estas en el tema de Operaciones entre consultas de resumen en el foro de PHP en Foros del Web. Buen día, les contare; tengo unas consultas de resumen y me funcionan bien, estas consultas me arrojan enteros. Mi pregunta es como restar estos enteros ...
  #1 (permalink)  
Antiguo 19/10/2015, 07:30
Avatar de marynella  
Fecha de Ingreso: septiembre-2015
Ubicación: Bogota
Mensajes: 57
Antigüedad: 8 años, 7 meses
Puntos: 1
Pregunta Operaciones entre consultas de resumen

Buen día, les contare; tengo unas consultas de resumen y me funcionan bien, estas consultas me arrojan enteros. Mi pregunta es como restar estos enteros

Aquí esta el código:

Código PHP:
Ver original
  1. $consulta = $conexion->query("SELECT referencia, SUM(cantidad_entrada) FROM entrada GROUP BY referencia ORDER BY referencia ASC");
  2.     echo"<center><table border=1>";
  3.     echo"<tr>";
  4.     echo"<td>";
  5.     echo"<table border=1>";
  6.    
  7.     while($entradas = mysqli_fetch_array($consulta)){
  8.             for ($i = 0; $i < 2; $i++){
  9.             echo"<td>".$entradas[$i]."</td>";
  10.             echo"<tr>";        
  11.         }
  12.     }
  13.    
  14.     echo"</table>";
  15.     echo"</td>";
  16.     //-------------------------------------------------------------------
  17.     $consulta1 = $conexion->query("SELECT referencia, SUM(cantidad_salida) FROM salida GROUP BY referencia ORDER BY referencia ASC");
  18.     echo"<td>";
  19.     echo"<table border=2>";
  20.     while($salidas = mysqli_fetch_array($consulta1)){
  21.             for ($i = 0; $i < 2; $i++){
  22.             echo"<td>".$salidas[$i]."</td>";
  23.             echo"<tr>";
  24.         }
  25.     }
  26.     echo"</table>";
  27. echo"</table>";
  #2 (permalink)  
Antiguo 21/10/2015, 06:21
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Operaciones entre consultas de resumen

<saludo>
Pues una de dos, almacenas los enteros en arrays, y luego restas los arrays,
o generas una consulta donde se resten esos enteros y los muestres.
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 21/10/2015, 07:09
Avatar de marynella  
Fecha de Ingreso: septiembre-2015
Ubicación: Bogota
Mensajes: 57
Antigüedad: 8 años, 7 meses
Puntos: 1
Respuesta: Operaciones entre consultas de resumen

Hola, ya trate de hacer una consulta que reste enteros y los muestre:

Código PHP:
Ver original
  1. $consulta2 = $conexion->query("SELECT entrada.referencia, (SUM(entrada.cantidad_entrada)-SUM(salida.cantidad_salida)) FROM entrada LEFT JOIN salida ON entrada.referencia=salida.referencia  GROUP BY entrada.referencia ORDER BY entrada.referencia ASC");
  2.                 echo"<table border=4>";
  3.                     while($total = mysqli_fetch_array($consulta2)){
  4.                             for ($i = 0; $i < 2; $i++){
  5.                             echo"<td>",$total[$i],"</td>";
  6.                         }
  7.                         echo"<tr>";
  8.                     }
  9.                 echo"</table>";
La resta la hace bien pero los valores a restar los triplica; alguna idea de porque pasa esto ??
Gracias por tu ayuda
  #4 (permalink)  
Antiguo 21/10/2015, 10:43
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Operaciones entre consultas de resumen

<saludo>
Cuando dices que los triplica, esto ocurre ejecutando la consulta
directamente en el motor de base de datos, o phpmyadmin, o lo que uses?
Sí es así, tal vez sea por el left join (teorizo sin tener data de la bd para probar)
Podrías cambiarlo por un inner join, pero imagino que sí usas el left es por algo,
así que tal vez se podría replantear el query de otro modo.
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 21/10/2015, 11:11
Avatar de marynella  
Fecha de Ingreso: septiembre-2015
Ubicación: Bogota
Mensajes: 57
Antigüedad: 8 años, 7 meses
Puntos: 1
Respuesta: Operaciones entre consultas de resumen

Si, ocurre en la consulta. ¿ de que otra forma podría realizar la consulta ? No conozco otra forma de hacerlo.

Gracias por tu ayuda
  #6 (permalink)  
Antiguo 21/10/2015, 13:46
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Operaciones entre consultas de resumen

<saludo>
Creo que se podría manejar con subconsultas
Ej:
Código SQL:
Ver original
  1. SELECT e.referencia,
  2. (SELECT SUM(e2.cantidad_entrada) FROM entrada e2
  3. WHERE e2.referencia = e.referencia) -
  4. (SELECT SUM(s.cantidad_salida) FROM salida s
  5. WHERE s.referencia = e.referencia) diferencia
  6. FROM entrada e
  7. ORDER BY e.referencia ASC
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 21/10/2015, 14:50
Avatar de marynella  
Fecha de Ingreso: septiembre-2015
Ubicación: Bogota
Mensajes: 57
Antigüedad: 8 años, 7 meses
Puntos: 1
Respuesta: Operaciones entre consultas de resumen

Graciaaaaaaaaaaaaaaaaaaaaaaasssssssssssss, es justo lo que necesitaba

Etiquetas: mysql, operaciones, select
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 13:20.