Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/03/2012, 11:55
Avatar de intiweb
intiweb
 
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 17 años, 6 meses
Puntos: 5
Respuesta: consulta suma en php

bueno si es lo que entendi y tu idea es que solo se sumen los datos por columnas en las columnas que tengan 3 o mas registros que no sean NULL entonces una de las soluciones es la siguiente:
supongo que sabras hacer una consulta a la base de datos Mysql por lo tanto paso esa parte pero haciendo un resumen

la idea seria:
Código PHP:
$query = "SELECT * FROM nombre_tabla";
$result = mysql_query('conexion a la base de datos',$query);

//INICIALIZO VARIABLES QUE CUENTAN LOS CAMPOS NO NULL
$camposNoNulosComisiones = 0;
$camposNoNulosAsignacion = 0;
$camposNoNulosBonificacion = 0;


//INICIALIZO LOS CAMPOS DONDE SE SUMAN LAS COLUMNAS
$sumaComicion = 0;
$sumaAsignacion = 0;
$sumaBonificacion = 0;

//SUMO LAS COLUMNAS Y CUENTOS LOS CAMPOS NO NULL EN CADA UNA DE ELLAS
while ($array = mysql_fetch_array($result)){

    
$comisiones = $array['comisiones'];
    
$asignacion = $array['asignacion'];
    
$bonificacion = $arra['bonificacion'];
    
    
$sumaComicion += $comisiones;
    
$sumaAsignacion += $asignacion
    $sumaBonificacion 
+= $bonificacion
    
    
if($sumaComisiones != NULL) $camposNoNulosComisiones++;

    if(
$asignacion != NULL) $camposNoNulosAsignacion++;

    if(
$bonificacion != NULL) $camposNoNulosBonificacion++; 

}

// ME FIJOS CUALES TIENEN MENOS DE 3 CAMPOS NO NULL Y A ESOS LE DEVUELVO EL 0
if($camposNoNulosComisiones < 3) $sumaComicion = NULL;

if(
$camposNoNulosAsignacion < 3) $sumaAsignacion = NULL;

if(
$camposNoNulosBonificacion < 3) $sumaBonificacion = NULL;

//LISTO YA ESTA ECHO AHORA TIENES EL RESULTADO EN LAS VARIAVLES $sumaComicion,$sumaAsignacion,$sumaBonificacion

echo $sumaComicion . "<br/>";
echo 
$sumaAsignacion . "<br/>";
echo 
$sumaBonificacion . "<br/>"; 
espero haberte entendido bien. y sido de ayuda ;)
saludos !
__________________
un saludo..... . . .

Última edición por intiweb; 16/03/2012 a las 12:01