Comunidad de diseño web y desarrollo en internet online

sumar el total de registros

Citar            
MensajeEscrito el 04 Mar 2008 10:52 pm
Hola otra ves yo, perdon por no conectarme antes pero mi computador se decompuso y bueno un desastre pero en fin, como habia comentado antes cada ves me piden que cambie o agrege cosas a mi website, y como soy nuevo en php pues me ponen en apuros, mi pregunta es la siguiente: como sumo el totalde los registros que me aparcen en un reporte, explico, tengo un reporte que se llama estado de cuenta y al final quiero ponder el total de cuentas que me aparecen y tambien ese reporte tiene una fecha de alta y una fecha documento, y quiero poner un campo que diga menos de 15 adias y samar las cantidades que tengan menos de 15 dias entre fecha alta y fecha documento y poner la cantidad y otro que diga mas de 15 dias y de igual manera, si alguien me puede ayudar lo agardeceria infinitamente, ya que el tiempo y el exeso de trabajo me comen.

Por luisangel24

24 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 05 Mar 2008 12:18 am
perdon me explique mal, como lo mencione antes quiero sumar el total de una coluna que se llama cuentas y pòner ese total al final de esa columna, esa en una y la otra es que hay otra columna que se llama fecha_cuenta y otra que se llama total_cuenta, quiero sumar las cantidades que estan en la columna total_ cuenta tomando en cuenta que la fecha que tiene esa cantidad sea menor a de 15 dias entre la columna fecha_cuenta y la fecha de la consulta o actual, sumar todas esas que esten en menos de 15 dias y poner un total al final.
es decir si la columna total-cuenta es 5,000.00 y en la columna fecha_cuenta tiene dia 01 y hoy estamos a 10 que la sume con las demas que cumplan con esa condicion y me de un total.

uuufff casi ni yo me entendi pero espero que si me entiendan Gracias

Por luisangel24

24 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 05 Mar 2008 02:15 pm
Que gestor de BD utilizas.?

si es mysql (a partir del 4.1.1) prueba con SELECT DATEDIFF($fecha1, $fecha2)

ej:

Código :

SELECT DATEDIFF('1997-12-31','1997-12-30');

retorna 1

Por mauril26

161 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Mar 2008 02:36 pm
Si es postgresql prueba con

Código :

select (timestamp'2008-06-26' - timestamp'2008-05-24') as diferencia;

en este caso devolveria 33

el resto seria la sumatoria, es decir, algo como

Código :

select sum(total_cuenta) as sumatoria where (select (timestamp'$fecha_cuenta' - timestamp'$fecha_consulta')) < 15
//ó
select sum(total_cuenta) as sumatoria where (select DATEDIFF('$fecha_cuenta','$fecha_consulta')) < 15


suerte... avisame si funciona algo de eso... todo es teórico. U_U

Por mauril26

161 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Mar 2008 08:16 pm
yo hice lo siguiente pero me podrias ayudar a acomodar este codigo

$strqry = "SELECT * FROM tabla where micliente =\"".$cliente."\"";
$strqry.= "and cargo-abono!='0'";

saldototal !=0;
saldocorrriente !=0;
saldo15 !=0;
saldo30 !=0;
saldo45 !=0;
registros !=0;

$qry = mysql_query($strqry);
while ($row = mysql_fetch_assoc($qry))
{
?>

<?php
$fecha_cuenta= $row["fecha"];
$fecha_actual= $date("Y-m-d");
$dia=$fecha_actual - $fecha_cuenta;

?>
<table align="center" width="70%" border="0" color="#006600" bgcolor="#ffffff">
<tr>
<td><?php print $row ["cuenta"]; ?></font></td>
<td ><?php print $row ["fecha_cuenta"]; ?></font></td>
<td><?php print number_format($row ["cargo"],2,'.',','); ?></font></td>
<td><?php print number_format($row ["abono"],2,'.',','); ?></font></td>
</tr>

--------------tengo problemas en esta parte---------

<?php
saldo !=$row["cargo"]-$row["abono"];
registros !=registros+1;
saldototal !=saldototal+saldo;

if ("$dias =<'15'") then{
$strqry.= "saldocorriente !='saldocorriente+saldo'";}

if dias>15 and dias !=<30 then{
saldo15+!=saldo;
}
ifdias>30and dias !=<45 then{
saldo30+!=saldo;
}
if dias>45 then{
saldo45+!=saldo;
}
}
?>

Por luisangel24

24 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 05 Mar 2008 08:46 pm
te recomiendo que ejecutes la mayor cantidad de operaciones (filtros, sumas, etc, etc) directamente por el mysql...

imagínate que la consulta genere 1 millón registros y tener que procesar todo eso por medio de php... después que termi... :zzz:

te recomiendo de corazón (ok, no se que me pasó ahí) que lo hagas con el DATEDIFF (para el filtro de los 15 dias) y el SUM (para la sumatoria de los saldos)

Por mauril26

161 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Mar 2008 08:55 pm
lo corregi asi pero, ahora quiero mostrar los totales abajo pero no me queda del todo bien

$strqry = "SELECT * FROM tabla where micliente =\"".$cliente."\"";
$strqry.= "and cargo-abono!='0'";

saldototal !=0;
saldocorrriente !=0;
saldo15 !=0;
saldo30 !=0;
saldo45 !=0;
registros !=0;

$qry = mysql_query($strqry);
while ($row = mysql_fetch_assoc($qry))
{
?>

<?php
$fecha_cuenta= $row["fecha"];
$fecha_actual= $date["Y-m-d"];
$dia = $fecha_actual - $fecha_cuenta;


?>
<table>
<tr>
<td><?php print $row ["cuenta"]; ?></font></td>
<td><?php print number_format($row ["cargo"],2,'.',','); ?></font></td>
<td><?php print number_format($row ["abono"],2,'.',','); ?></font></td>
</tr>

<?php
saldo !=$row["cargo"]-$row["abono"];
registros !=registros+1;
saldototal !=saldototal+saldo;

if ($dias < "15"){
$strqry.= "saldocorriente !='saldocorriente+saldo'";}

if ($dias >"15" and $dias < "30"){
$strqry.= "saldo15+!=saldo";}

if ($dias >"30" and $dias < "45"){
$strqry.="saldo30+!=saldo";}

if ($dias >"45"){
$strqry.="saldo45+!=saldo";}
}
?>

Por luisangel24

24 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 06 Mar 2008 06:19 am
Sigue los consejos de mauril26, aparte como lo estas haciendo esta mal

Código :

$dia = $fecha_actual - $fecha_cuenta; 


Asi no se restan fechas en php, hay una forma de hacerlo pero no es asi. Y sin duda como te dice mauril26 ofrece mejor rendimiento.

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.