Ver Mensaje Individual
  #10 (permalink)  
Antiguo 16/06/2011, 10:13
Nexus10
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 9 meses
Puntos: 58
Respuesta: Sumar filas en una consulta sql

Hola informacionsys.

Me he puesto a probar el código que te puse antes para salir de dudas y me he dado cuenta que tenía un error y un fallo. El error era que me faltaba poner una variable en un sitio, y el fallo era que dejaba de imprimir la última fila.
El código correcto es el siguinete:

Código PHP:
$resultado mysql_query($query);  //resultado de la consulta 
$row mysql_fetch_assoc($resultado); //extraes el primer registro 
$codigo $row['cod_suc'];  //asignas datos a variables 
$directo $row['DIRECTO']; 
$indirecto $row['INDIRECTO']; 
$corp $row['CORPORATIVO']; 

while (
$reg mysql_fetch_assoc($resultado) ) //sigues sacando registros 
{  
     if (
$reg['cod_suc'] == $codigo)  //si los códigos son iguales sumas los valores
      

           
$directo += $reg['DIRECTO']; 
           
$indirecto += $reg['INDIRECTO']; 
           
$corp += $reg['CORPORATIVO']; 
     } 
     else {  
//si los códigos son distintos 
            //imprimes registro  
            // (Aquí va el código para imprimir la fila usando las variables $codigo, $directo, $indirecto y $corp).
              
            // asignas nuevos datos 
            
$codigo $reg['cod_suc'];  
            
$directo $reg['DIRECTO']; 
            
$indirecto $reg['INDIRECTO']; 
            
$corp $reg['CORPORATIVO']; 
            
     } 

//Aquí hay que poner el código para imprimir la última fila 

Este código trabaja bien, está probado. Ahora te toca a ti adaptarlo a tus necesidades. Intenta entender el algoritmo. Intenta identificar las variables y funciones que te he puesto con las que tú tienes y colócalas en el lugar apropiado.
Donde te he puesto que tienes que poner el código para imprimir la fila, básicamente lo que tienes que poner es esto:

Código:
<tr> 
<td>directo</td> 
<td>0</td> 
<td>0</td> 
<td><?php echo $directo;?></td> 
<td>0</td> 
</tr> 
<tr> 
<td>indirecto</td> 
<td>0</td> 
<td>0</td> 
<td><?php echo $indirecto;?></td> 
<td>0</td> 
</tr> 
<tr> 
<td>corporativo</td> 
<td>0</td> 
<td>0</td> 
<td><?php echo $corporativo;?></td> 
<td>0</td> 
</tr>

Intenta probar el código sin crear la tabla. Solo imprime las variables, para que puedas comprobar si te funciona o no. Una vez que veas que te salen los resultados esperados pon el código html para crear la tabla.

Este código es para mysql. Por lo que veo tú usas otro motor. No sé bien como va ese motor de base de datos por lo que no te he adaptado el código a lo tuyo, eso te lo dejo a ti, pero si entiendes bien el algoritmo no creo que tengas problema.
Si hay algo que no entiendes postealo aquí y con gusto intentaré ayudarte.

Un saludo.