Deu Zica .. select(sum)

13. Ainda nao ..

wesley rengel viana
wesrenv

(usa Nenhuma)

Enviado em 02/05/2008 - 19:40h

Sim os campos sao iguais ...to ficando louco ..tentei a dica do amigo novo ai mas nao deu tambem ..to desde as 7 da manha tentando conseguir isso ja sao 19:40 e nada ...mas agradeco as ajudas ai e nao vamos desistir agurado novas dicas ..


  


14. Detalhado

wesley rengel viana
wesrenv

(usa Nenhuma)

Enviado em 02/05/2008 - 19:45h

O script
$conec;
$bco;
$conectou=0;
include"conexao.php";
if ($conectou) {

$stgsql ="select ob, sum(vl) from (select obra as ob, valor_total as vl from tarifa_hotel union select obra as ob, valor as vl from tarifa_passagem ) as tabelajunta group by ob";

$res =mysql_query($stgsql,$conec);
$linhas=mysql_num_rows($res);
$linhasini=1;
if (($res)and($linhas))
{$dados=mysql_fetch_array($res);

echo "
<table width='50%'>
<td align='left' with='25%'> Total Hotéis R$ "; printf("%0.2f", $hotel); echo "</td>
<td align='right' with='25%' >Periodo $diaini/$mesini/$anoini a $diafim/$mesfim/$anofim</td>

<table width='50%' border='1' cellspacing='0'>" ;
echo "<tr bgcolor='D0D0D0'>";
echo "<td align='left' width='20%' ><font size='2'><i><b>Obra </td>";
echo "<td align='left' width='5%'><font size='2'><i><b>Valor </td>";
echo "</tr>";
while($linhasini <=$linhas){


$obra=$dados['ob'];
$vl=$dados['sum(vl)'];


echo " <tr><TD></TD></TR><tr >";
echo "<td align='left'><font size='2'> $obra</td>";
echo "<td align='right'><font size='2'>"; printf("%0.2f", $vl); echo "</td>" ;

$linhasini ++;

$dados=mysql_fetch_array($res);

}
}}




/////////////////// o resultado

Alfaiataria - Shopping Cidade Jardim 684.00

Baby - Indaiatuba 105.00

Blue - Man - Barra Shop 778.36

Chocolat du Jour 560.67

Chocolat du Jour- Shopping Cidade Jardim 897.33

Cleusa Presentes 1305.24

Cleusa Presentes - Shopping Bourbon 1080.40

/////// veja porque eu disse que os valores estao loucos ..

Obra Valor

Alfaiataria - Shopping Cidade Jardim 276.00

Baby - Indaiatuba 138.00

Blue - Man - Barra Shop 962.98

Chocolat du Jour- Shopping Cidade Jardim 603.00

Cleusa Presentes 1385.62

Cleusa Presentes - Shopping Bourbon 1316.14


///////

Obra Valor

Alfaiataria - Shopping Cidade Jardim 1230.00

Baby - Indaiatuba 72.00

Chocolat du Jour 560.67

Chocolat du Jour- Shopping Cidade Jardim 1144.67

Cleusa Presentes 1374.17

Cleusa Presentes - Shopping Bourbon 1246.33

observe o pau no valor da alfaiataria ..






15. Explicando melhor

wesley rengel viana
wesrenv

(usa Nenhuma)

Enviado em 02/05/2008 - 19:49h

O primeiro resultado é o bendico cujo script o segundo e um outro que mostra os totais de hoteis o terceiro os totais de passagem , veja que a soma na alfaiataria deveria ser a soma do resultado dois mais o resultado tres e veja o valor que da no resoltado um, totalmente loco ..


16. cara

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 02/05/2008 - 19:59h

só to vendo uma solução.
Vai dar um pouco mais de trabalho mas pelo menos evitando union e join na base de dados, você terá mais performance na aplicação.
Vamos descer esta soma para a camada de aplicação.
Você faz os 2 selects em separado (ja com as somas).
E faz uma função para somar na aplicação. Você vai varrendo os dados em paralelo e somando.
É estranho esse número maluco, pode ser algum bug por causa do subselect do union sei la.


17. cara

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 02/05/2008 - 19:59h

só to vendo uma solução.
Vai dar um pouco mais de trabalho mas pelo menos evitando union e join na base de dados, você terá mais performance na aplicação.
Vamos descer esta soma para a camada de aplicação.
Você faz os 2 selects em separado (ja com as somas).
E faz uma função para somar na aplicação. Você vai varrendo os dados em paralelo e somando.
É estranho esse número maluco, pode ser algum bug por causa do subselect do union sei la.


18. Pode explicar melhor ?

wesley rengel viana
wesrenv

(usa Nenhuma)

Enviado em 03/05/2008 - 17:37h

Pode me explicar como seria isso ? poderia escrever basicamente como ficaria uma determinada funcao que juntasse os dois selects ? atualemtete tenho isso -
$user2=$_POST['user2'];

$dia= date("d", time());
$mes= date("m", time());
$ano= date("y", time());


$horab = gmdate("H");
$h= $horab-3;
$m = gmdate("i");
$s = gmdate("s");

$diaini=$_GET['diaini'];
$mesini=$_GET['mesini'];
$anoini=$_GET['anoini'];
$diafim=$_GET['diafim'];
$mesfim=$_GET['mesfim'];
$anofim=$_GET['anofim'];


$conec;
$bco;
$conectou=0;
include"conexao.php";
if ($conectou) {
$stgsql ="select sum(valor) from tarifa_passagem where data_sai>=\"$anoini$mesini$diaini\" and data_sai<=\"$anofim$mesfim$diafim\" and tipo_pass=\"ÔNIBUS\"";
$res =mysql_query($stgsql,$conec);
$linhas=mysql_num_rows($res);
$linhasini=1;
if (($res)and($linhas))
{$dados=mysql_fetch_array($res);
while($linhasini <=$linhas){

$onibus=$dados['sum(valor)'];

$linhasini++;
$dados=mysql_fetch_array($res);}} }

$conec;
$bco;
$conectou=0;
include"conexao.php";
if ($conectou) {
$stgsql ="select sum(valor) from tarifa_passagem where data_sai>=\"$anoini$mesini$diaini\" and data_sai<=\"$anofim$mesfim$diafim\" and tipo_pass=\"AVIÃO\" ";
$res =mysql_query($stgsql,$conec);
$linhas=mysql_num_rows($res);
$linhasini=1;
if (($res)and($linhas))
{$dados=mysql_fetch_array($res);
while($linhasini <=$linhas){

$aviao=$dados['sum(valor)'];

$linhasini++;
$dados=mysql_fetch_array($res);}} }


$sum=($onibus + $aviao);

$conec;
$bco;
$conectou=0;
include"conexao.php";
if ($conectou) {
$stgsql ="select sum(valor_total) from tarifa_hotel where dataini>=\"20080401\" and dataini<=\"20080431\" ";
$res =mysql_query($stgsql,$conec);
$linhas=mysql_num_rows($res);
$linhasini=1;
if (($res)and($linhas))
{$dados=mysql_fetch_array($res);
while($linhasini <=$linhas){

$hotel_total=$dados['sum(valor_total)'];

$linhasini++;
$dados=mysql_fetch_array($res);}} }

///////// SELECT DAS PASSAGEMS //////////////
$conec;
$bco;
$conectou=0;
include"conexao.php";
if ($conectou) {
$stgsql ="select *, sum(valor), count(valor) from tarifa_passagem where data_sai>=\"080401\" and data_sai<=\"080431\" group by obra ";
$res =mysql_query($stgsql,$conec);
$linhas=mysql_num_rows($res);
$linhasini=1;
if (($res)and($linhas))
{$dados=mysql_fetch_array($res);

echo "
<table width='50%'><td align='right' with='100%'>$dia/$mes/$ano - $h:$m:$s</td></table>
<img src='logo_clamom.png' border='0'>
<table width='50%'>
<td align='left' with='25%'>Total Passagens $sum [ Avião R$ "; printf("%0.2f", $aviao); echo "][ Ônibus R$ "; printf("%0.2f", $onibus); echo "]</td>

<td align='right' with='25%' >Periodo $diaini/$mesini/$anoini a $diafim/$mesfim/$anofim</td>

<table width='50%' border='1' cellspacing='0'>" ;
echo "<tr bgcolor='D0D0D0'>";
echo "<td align='left' width='20%' ><font size='2'><i><b>Obra </td>";
echo "<td align='left' width='10%' ><font size='2'><i><b>Passagens</td>";
echo "<td align='left' width='10%' ><font size='2'><i><b>Custo medio de Passagens</td>";
echo "<td align='left' width='10%'><font size='2'><i><b>Valor Total</td>";
echo "</tr>";
while($linhasini <=$linhas){
$obra=$dados['obra'];
$valor2=$dados['sum(valor)'];
$viajens =$dados['count(valor)'];
$customedio =($valor2/$viajens);

echo " <tr><TD></TD></TR><tr >";
echo "<td align='left'><font size='2'> $obra</td>";
echo "<td align='left'><font size='2'> $viajens</td>";
echo "<td align='right'><font size='2'>"; printf("%0.2f", $customedio); echo "</td>" ;
echo "<td align='right'><font size='2'>"; printf("%0.2f", $valor2); echo "</td>" ;

$linhasini ++;

$dados=mysql_fetch_array($res);

}
} }

//////////////////////// SELECT DOS HOTEIS real /////////////////////////////
$conec;
$bco;
$conectou=0;
include"conexao.php";
if ($conectou) {


$stgsql ="select *, sum(valor_total), count(valor_total) from tarifa_hotel where dataini>=\"20080401\" and dataini<=\"20080431\" group by obra ";
$res =mysql_query($stgsql,$conec);
$linhas=mysql_num_rows($res);
$linhasini=1;
if (($res)and($linhas))
{$dados=mysql_fetch_array($res);

echo " <table width='50%'> <br>
<td align='left' with='25%'> Total Hotéis R$ "; printf("%0.2f", $hotel_total); echo "</td>
<td align='right' with='25%' >Periodo $diaini/$mesini/$anoini a $diafim/$mesfim/$anofim</td>

<table width='50%' border='1' cellspacing='0'>" ;
echo "<tr bgcolor='D0D0D0'>";
echo "<td align='left' width='20%' ><font size='2'><i><b>Obra </td>";
echo "<td align='left' width='10%' ><font size='2'><i><b>Diarias</td>";
echo "<td align='left' width='10%' ><font size='2'><i><b>Custo medio de Diarias</td>";
echo "<td align='left' width='10%'><font size='2'><i><b>Valor Total</td>";
echo "</tr>";
while($linhasini <=$linhas){
$obra=$dados['obra'];
$valor=$dados['sum(valor_total)'];
$diarias=$dados['count(valor_total)'];
$mediadiarias=($valor/$diarias);


echo " <tr><TD></TD></TR><tr >";
echo "<td align='left'><font size='2'> $obra</td>";
echo "<td align='left'><font size='2'> $diarias</td>";
echo "<td align='right'><font size='2'>"; printf("%0.2f", $mediadiarias); echo "</td>" ;
echo "<td align='right'><font size='2'>"; printf("%0.2f", $valor); echo "</td>" ;

$linhasini ++;

$dados=mysql_fetch_array($res);

}
} }

abaixo disso o que eu faria pra por a terceira tabela no relatorio totalizando as duas assima ?

(desculpe pelo incomodo mas é que isso ta custando minha cabeca aqui )



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts