Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Célido

Soma Por DaTas e Acumulado MYSQL or SQL

Recommended Posts

ae Galera.

 

O Caso :

 

Preciso somar os valores acumulados por dia, em um Extrato Mensal.

Beleza, consigo fazer o script,:

 

set @TOT = (SELECT Sum(Saldo) From extratobanco order by DataRec DESC) ;
set @TAC = (SELECT Sum(Saldo) From extratobanco order by DataRec ASC) ;
select Conta, Docto,Parcela,RazaoNome,DataRec,Debito,Credito,Saldo, @TOT:=@TOT+Saldo,@TOT-@TAC
from extratobanco Order by DataRec
Resultado:
Conta Contrato Nome Data Receb Debito Credito Saldo Saldo
xyxy-z 21-1 xxxxx 2013-10-15 0,00 325,00 325,00 325,00
xyxy-z 23-1 xxxxx 2013-10-16 100.00 0.00 100,00 225,00
xyxy-z 23-4 xxxxx 2013-10-16 0.00 320.00 0,00 555.00
Ate ai Tudo bem.
Mas, eu quero salvar esse SCRIPT em uma VIEW em um BD (Mysql).
Alguem teria, uma ideia de como fazer via CREATE VIEW DO MYSQL. pois no create view, nao esta
aceitando os Parametros @TOT. pois envolve uma sub-query. SUM(Soma).
Como viram, via codigo esta resolvido (para quem precisar) mas eu quero que este SCRIPT vire uma CONSULTA no BD
Quem puder colaborar, agradeço.
Saude e Paz, o Resto Corremos Atras.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dae Galera,

 

Via Createview nao da. entao, segue o codigo em PHP, para quem quiser usar.

mas ainda estou estudando via ROLLUP. que da o total, mas em forma de extrato assim vai.

 

<?php
$sql = "select * from extratobanco";
$query = mysql_query($sql);
$DataRec = $sql["DataRec"];
$Docto = $sql["Docto"];
$Parcela = $sql["Parcela"];
$RazaoNome = $sql["RazaoNome"];
$Debito = $sql["Debito"];
$Credito = $sql["Credito"];
$Saldo =$sql['Saldo'];
$TOT = 0;
while ($rows = mysql_fetch_array($query)) {
$TOT += $rows['Saldo'];
$DataRec = $rows['DataRec'];
$Docto= $rows['Docto'];
$Parcela = $rows['Parcela'];
$RazaoNome = $rows['RazaoNome'];
$Debito = $rows['Debito'];
$Credito = $rows['Credito'];
$Saldo = $rows['Saldo'];
echo "$DataRec"," - ","$Docto"," -","$Parcela"," - ","$RazaoNome"," - ","$Debito"," - ","$Credito"," - ","$Saldo"," - ","$TOT";
echo "<br>";
}
?>
Isto evita aquela CARAIDA de subquery,.

Esta solução pode ser adaptada tambem para Cash Flow, etc....

 

Saude e paz. O Resto Corremos atras.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Galera para quem precisar, Extrato com FILTRO por contas, podendo sre adaptados a varias situaçoes.



<?php

$conexao = mysql_connect("localhost", "celido", "senha");

mysql_select_db("world",$conexao);

?>


<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">


Conta Corrente: <select name="Conta">

<option>--- Escolha a Conta ---</option>


<?php

# buscando no DB as categorias

$query = "SELECT ContaCorrente FROM contascorrentes";

$res = mysql_query($query);

while ($coluna = mysql_fetch_array($res)){

#imprimindo as categorias em um option

echo "<option value = ".$coluna['ContaCorrente']."></option>";

}

?>

</select>

<input type="submit" value="ok"><br><br>


<?php


$con = mysqli_connect('localhost','celido','cdf1960','world');

if (!$con) {

die('Could not connect: ' . mysqli_error($con));

}


mysqli_select_db($con,"world");

$sql="SELECT * FROM extratobanco WHERE Conta LIKE '%$_POST[Conta]%'";

$result = mysqli_query($con,$sql);


echo "<table border='1'>

<tr>

<th>Data</th>

<th>Documento</th>


<th>Razao Social</th>

<th>Débito... R$</th>

<th>Crédito.. R$</th>

<th>Saldo.... R$</th>

<th>Acumulado R$</th>

<th>Conta Corrente R$</th>

</tr>";



$TOT = 0;

while($rows= mysqli_fetch_array($result)) {

$TOT += $rows['Saldo'];

$TTD = $rows['Debito'];

$TOD += $rows['Debito'];

$TOC += $rows['Credito'];


$DataRec = $rows['DataRec'];

$Docto= $rows['Docto'];

$Conta= $rows['Conta'];

$RazaoNome = $rows['RazaoNome'];

$Debito = $rows['Debito'];

$Credito = $rows['Credito'];

$Saldo = $rows['Saldo'];


echo "<tr>";

echo "<td><center>" . $rows['DataRec'] . "</td>";

echo "<td><center> ". $rows['Docto'] . "-". $rows['Parcela'] ."</td>";

echo "<td>" . $rows['RazaoNome'] . "</td>";

echo "<TD ALIGN=right>". number_format($Debito, 2, ',', '.')."</td>"; // retorna R$100.000,50

echo "<TD ALIGN=right>". number_format($Credito, 2, ',', '.')."</td>"; // retorna R$100.000,50

echo "<TD ALIGN=right>". number_format($Saldo, 2, ',', '.')."</td>"; // retorna R$100.000,50

echo "<TD ALIGN=right>". number_format($TOT, 2, ',', '.')."</td>"; // retorna R$100.000,50

echo "<td><center>" . $rows['Conta'] . "</td>";


echo "</tr>";

}

echo "</table>";



echo "<br>";


echo "Debitos R$.......";

echo "<TD ALIGN=right>". number_format($TOD, 2, ',', '.')."</td>"; // retorna R$100.000,50

echo "<br>";

echo "Créditos R$......";

echo "<TD ALIGN=right>". number_format($TOC, 2, ',', '.')."</td>";

echo "<br>";

echo "Saldo R$...........";

echo "<b><TD ALIGN=right>". number_format($TOT, 2, ',', '.')."</td>";

mysqli_close($con);

?>


Valeu!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.