Foros del Web » Programando para Internet » PHP »

Subtotales sin GROUP BY

Estas en el tema de Subtotales sin GROUP BY en el foro de PHP en Foros del Web. Hola Necesito calcular subtotales de los registros de mi tabla pero no tengo ningún campo para agrupar y obtener el resultado deseado. Lo que necesito ...
  #1 (permalink)  
Antiguo 09/07/2005, 03:58
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 1
Subtotales sin GROUP BY

Hola
Necesito calcular subtotales de los registros de mi tabla pero no tengo ningún campo para agrupar y obtener el resultado deseado.

Lo que necesito es esto:

campo_1 QUIERO OBTENER
2 2
5 7
10 17
-------->mmm no salen las columnas pero entienden, no ?
Tengo esto pero no va:
Código PHP:
$sql=("SELECT trans_fee AS FEE, timestamp AS DATETIME, status AS STATUS, SUM(trans_fee) AS BALANCE FROM transactions WHERE timestamp>=$convert1 AND timestamp<=$convert2 AND trans_fee>0 GROUP BY timestamp "); 
Muchísimas gracias
  #2 (permalink)  
Antiguo 09/07/2005, 06:27
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
No se entiende bien el mensaje. ¿Quieres saber cuántos registros tiene tu tabla?...
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #3 (permalink)  
Antiguo 09/07/2005, 12:57
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 1
Hola Takitei

Tengo una columna con los datos de las comisiones cobradas y quiero mostrar en una segunda columna los subtotales:

COMISION -------------> BALANCE
2 ---------------------> 2
5 ---------------------> 7
10 --------------------->17

Con SUM(trans_fee) que ves en mi SELECT obtengo el total de todas las comisiones pero aparte necesito este control. Tampoco me sirve SUM con GROUP BY (creo).

Me expliqué mejor ?

Gracias y cariños
  #4 (permalink)  
Antiguo 09/07/2005, 14:30
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Yo no creo que SQL pueda hacer eso. Pensandolo bien, yo lo haría mejor con PHP para no complicarme la vida. Pienso que quizas algo asi podría servir:

Código PHP:
$i=0;
$buffer=0;
while(
$row=mysql_fetch_array($rs)){
  
$buffer+=$row['comision'];
  
$subtotales["$i"]=$buffer;
  
$i++;

Esto te devolverá un array numerado del 0 a X (donde X es la cantidad de registros de tu tabla) con cada subtotal en cada elemento de array. Luego podrías procesarlo con foreach(), etc...

Saludos,
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #5 (permalink)  
Antiguo 09/07/2005, 17:08
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 1
eso es lo que necesito.
Muchas gracias Takitei... pero... lo tengo que masticar un poquito porque todo lo que utiliza i++ me cuesta entender así que por ahí vuelvo a jorobar con algo de lo que sigue después.
Cariños
  #6 (permalink)  
Antiguo 09/07/2005, 20:26
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
$i++; es simplemente incrementar un valor a la variable $i. Es una forma abreviada de hacerlo. $i++ es lo mismo que $i=$i+1 o también $i+=1. Es bien sencillo el código, cualquier cosa preguntas.

Saludos,
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #7 (permalink)  
Antiguo 09/07/2005, 22:47
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 1
Takitei por favor otra ayudita

Entendí tu explicación y lo estoy aplicando. Tengo esto:
Código PHP:
$i=0;
  
$buffer=0;
  
$buffer+=$row['FEE'];
  
$subtotales["$i"]=$buffer;
  
$i++;
   echo 
"<TR><TD><small><small>".$time."</small></small></TD><TD><small><small>&nbsp;</small></small></TD><TD><small><small><TD><center><small><small>&nbsp;</small></TD><TD><center><small><small>&nbsp;</small></TD><TD align='right'><small><small>".$row["FEE"]."</small></small></TD><TD align='right'><small><small>".$buffer."</small></small></TD><TD><small><small>&nbsp;</small></small></TD><TD><small><small><TD><center><small><small>&nbsp;</small></TD><TD align='right'><small><small>".$stat."</small></small></TD></TR>"
Pero obtengo esto:
2 ----> 2
5 ----> 5
10 ----> 10
Es decir... me muestra el valor del "fee" pero no hace el cálculo de sumar el actual más los anteriores.
Qué estoy haciendo mal ?
Muchísimas gracias
  #8 (permalink)  
Antiguo 09/07/2005, 23:15
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Compara lo que tienes con lo que te sugirieron... ve que Takitei tiene un ciclo y dentro de el la suma (+=)... tu no muestras el ciclo y si tubieses todo esto dentro del ciclo siempre inicias $i y $buffer... error.

Esto esta bien:
Código PHP:
$i=0;
while(
$i<10) {
echo 
"$i<br>";
$i+=3;

Esto esta mal:
Código PHP:
while($i<10) {
$i=0;
echo 
"$i<br>";
$i+=3;

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 10/07/2005, 00:03
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 1
Seeeeeeeeeee JAM1138

Siempre me trabuca qué incluir en el cliclo y qué no... ahora estoy captando un poco más. Tal cual dices estaba iniciando cada vez $i y $buffer, ahora quedó.

QUEDO GRACIAS A USTEDES !!!
Los quieeeeeeeeeeeeero
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 15:52.