Foros del Web » Programando para Internet » PHP »

php operaciones matematicas con consultas de mysql

Estas en el tema de php operaciones matematicas con consultas de mysql en el foro de PHP en Foros del Web. Buenas tardes, nuevamente saludando al foro y solicitando su ayuda. Tengo una tabla en donde registro el consumo mensual de impresiones datos actuales en la ...
  #1 (permalink)  
Antiguo 16/03/2012, 15:43
Avatar de chclaudio  
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta php operaciones matematicas con consultas de mysql

Buenas tardes, nuevamente saludando al foro y solicitando su ayuda.

Tengo una tabla en donde registro el consumo mensual de impresiones

datos actuales en la tabla

idhtsimpresoras_byn idimpresoras cantidad mes anio fecha_corte
1 4 200 2 2012 22/02/2012
2 5 229403 3 2012 22/02/2012
3 3 69296 3 2012 22/02/2012
4 2 59792 3 2012 22/02/2012
5 4 155825 3 2012 22/02/2012
6 1 84772 3 2012 22/02/2012
7 3 62779 3 2012 22/02/2012
8 2 51487 3 2012 22/02/2012
9 4 145456 3 2012 22/02/2012
10 5 206766 3 2012 22/02/2012
11 1 64540 3 2012 22/02/2012

pequeña consulta

"SELECT htsimpresoras_byn.idimpresoras, htsimpresoras_byn.cantidad, htsimpresoras_byn.fecha_corte
FROM htsimpresoras_byn
WHERE idimpresoras = 1
ORDER BY cantidad DESC LIMIT 2;

Resultado de consulta

idimpresoras cantidad fecha_corte
1 84772 22/02/2012
1 64540 22/02/2012

De la consulta anterior en donde obtengo los registros idimpresoras, cantidad y fecha corte, necesito que a la cantidad con fecha mas reciente se le reste la cantidad con fecha anterior siempre y cuando se trate de la misma impresora.

Nota: me gustaría que solamente se consultaran las dos fechas mas recientes de cada impresora, no he logrado hacer el query es por eso que lo limito a 2 y le pongo como condición el id de impresora y ademas lo ordeno de manera descendente.

saludos gracias por su apoyo
  #2 (permalink)  
Antiguo 16/03/2012, 16:08
 
Fecha de Ingreso: diciembre-2010
Ubicación: Gavà
Mensajes: 74
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: php operaciones matematicas con consultas de mysql

Antes de nada, no se puede hacer una consulta solo de 2 cosas (o sea, para eso está el limit), para hacer lo que dices hay operadores matemáticos en mysql (http://dev.mysql.com/doc/refman/5.0/...functions.html), aunque creo que lo que quieres no puedes hacerlo con la consulta como la tienes planteada ahora (has de usar algún GROUP BY y tal), suerte! (Si lo vas a hacer desde PHP o así lo tienes más fácil, comparas las 2 fechas dentro del array y una simple operación!)
  #3 (permalink)  
Antiguo 17/03/2012, 09:37
Avatar de chclaudio  
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Respuesta: php operaciones matematicas con consultas de mysql

Cita:
Iniciado por dotzeck Ver Mensaje
Antes de nada, no se puede hacer una consulta solo de 2 cosas (o sea, para eso está el limit), para hacer lo que dices hay operadores matemáticos en mysql ([url]http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html[/url]), aunque creo que lo que quieres no puedes hacerlo con la consulta como la tienes planteada ahora (has de usar algún GROUP BY y tal), suerte! (Si lo vas a hacer desde PHP o así lo tienes más fácil, comparas las 2 fechas dentro del array y una simple operación!)
------


Asi es amigo de hecho para limitar el resultado utilizo el LIMIT, y hasta el momento lo utilice solamente por que como he dicho aun no logro que me muestre los los dos registros de fechas mas recientes de cada impresora.

Ahora en cuanto a los operadores matemáticos de mysql en este momento no me ayudan.

en cuanto al GROUP BY de igual manera no me ayuda mucho ya que en este caso el la función del GROUP BY hacer un grupo por cada categoría diferente.

Esto que comentas de hacerlo en PHP de hecho eso es lo quiero hacerlo desde PHP "comparas las 2 fechas dentro del array y una simple operación!" como comparo las dos fechas dentro del array?

Ya que lo que según yo hace el array es obtener todos los valores de la consulta de la siguiente manera


<?php
include ("./conectadb.php");
echo "</br></br>";

$registros=mysql_query("SELECT htsimpresoras_byn.idimpresoras, htsimpresoras_byn.cantidad, htsimpresoras_byn.fecha_corte
FROM htsimpresoras_byn
WHERE idimpresoras = 1
ORDER BY cantidad DESC LIMIT 2;",$conexion) or
die("Problemas en el select:".mysql_error());
while ($reg=mysql_fetch_array($registros))
{
echo "idimpresoras:".$reg['0']."</br>";
echo "Cantidad:".$reg['1']."</br></br>";
echo "Cantidad:".$reg['2']."</br></br>";
}
mysql_close($conexion);
?>

resultado

idimpresoras:1
Cantidad:84772
Cantidad:2012-02-22

idimpresoras:1
Cantidad:64540
Cantidad:2012-02-22


El array dentro de los indices contiene el resultado con todos los registros de cada fila y así sucesivamente es decir con la fila dos igual hace referencia al indice 0,1,2. etc.

¿Como puedo restar la cantidad con fecha mas antigua a la cantidad con fecha mas reciente.?

Nota: la cantidad mas antigua en el ejemplo de la consulta se encuentra en el indice 2
y la cantidad mas reciente también se encuentra en el indice 2.


Saludos y gracias por el apoyo.

Etiquetas: matematicas, mysql, operaciones, registro, tabla
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 22:30.