Jump to content


Photo

Contagem De Valores Agrupados Por Operador


  • Faça o login para participar
10 replies to this topic

#1 horacio2009

horacio2009

    Ativo

  • Usuários
  • 371 posts
  • Sexo:Não informado

Posted 16/05/2011, 08:13

Bom dia, pessoal!!!
galera, seguinte eu montei uma seleção para gerar o ranking de vendas e fiz desse jeito:

$minhaQuery="
select NG.contrato , NG.relacao, NG.pago, SUM(CC.valor) as total, NG.solicitante,DC.nome as operador, CC.valor as credito
from controle_clientes as CC
INNER JOIN dados_controle as DC ON DC.codigo_venda=CC.relacao
INNER JOIN negociacao as NG on CC.contrato=NG.contrato AND NG.pago > '$data1' AND NG.contrato not in('','0') AND NG.relacao in('nacional','consorciofiatautomoveis','iconsorciofiat','site4') GROUP BY CC.relacao order by total desc ;
";


bom, em primeiro lugar, tá certo aqui...tudo funciona como eu quero que funcione, porém pelo fato de estar agrupado por (CC)relacao (nesse caso, a relação é por operadores)ele não me retrorna o total vendido(por causa do group)
Enfim...quero somar os valores para chegar ao total, como eu faço?
Se fizer diferença, para listar, estou usando o FOR...
Valeu a força galera!!
Grande abraço a todos!!
Horácio
Meu último trabalho:
http://www.iconsorciofiat.com.br.

#2 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 16/05/2011, 08:18

Se você deseja ter o total geral:

Ou você faz da forma que está fazendo ou faz uma outra consulta...



select SUM(CC.valor) as totalGERAL
from controle_clientes as CC
INNER JOIN dados_controle as DC ON DC.codigo_venda=CC.relacao
INNER JOIN negociacao as NG on CC.contrato=NG.contrato AND NG.pago > '$data1' AND NG.contrato not in('','0') AND NG.relacao in('nacional','consorciofiatautomoveis','iconsorciofiat','site4'
)


Esse vai de dar o total...

(y)??

#3 horacio2009

horacio2009

    Ativo

  • Usuários
  • 371 posts
  • Sexo:Não informado

Posted 16/05/2011, 08:23

então...fazendo outra consulta eu sei que resolve, porém, quero evitar outra consulta, entende?quero matar a questão em uma consulta só...
Meu último trabalho:
http://www.iconsorciofiat.com.br.

#4 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 16/05/2011, 08:25

Então a forma que você fez mesmo com Loop é a correta...

#5 horacio2009

horacio2009

    Ativo

  • Usuários
  • 371 posts
  • Sexo:Não informado

Posted 16/05/2011, 08:31

eu sei...
mas é assim: o resultado que está saindo é:
josé R$2,00
maria R$2,00
joaquim:R$5,00

aí eu quero somar essas linhas de forma que eu chegue a 9,00, entendeu? mas quero fazer isso, sem outra consulta...
Meu último trabalho:
http://www.iconsorciofiat.com.br.

#6 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 16/05/2011, 08:46

Ok...

Mais quando você faz o for não está trazendo o valor certo??

Esses valores está em formato moeda ou numerico no banco??

(y)?

#7 horacio2009

horacio2009

    Ativo

  • Usuários
  • 371 posts
  • Sexo:Não informado

Posted 16/05/2011, 09:14

O for tá trazendo tudo certo, sim...
mas está trazendo separado...preciso soma-los...pois a pesquisa agrupa por operador...se não tivesse esse agrupamento, seria o valor integral, da forma que está, é valor individual...
o campo na tabela é "decimal(10,2)"
Meu último trabalho:
http://www.iconsorciofiat.com.br.

#8 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 16/05/2011, 09:27

Para trazer o total você tem que criar uma variável tipo $valorTotal

e dentro for somar os valores nessa variável

$valorTotal += $variavel[$i]['total'];

(y)?

#9 horacio2009

horacio2009

    Ativo

  • Usuários
  • 371 posts
  • Sexo:Não informado

Posted 16/05/2011, 09:58

legal!!
mas fiquei meio confuso nesse comando...
o levantamento dos dados está as sim:
	for($x;$x<$linhas;$x++)
{
$contrato=mysql_result($queryvalor,$x,'NG.contrato');
$relacao=mysql_result($queryvalor,$x,'NG.relacao');
$pago=mysql_result($queryvalor,$x,'NG.pago');
$valor=mysql_result($queryvalor,$x,'total');
$solicitante=mysql_result($queryvalor,$x,'NG.solicitante');
$operador=mysql_result($queryvalor,$x,'operador');

$valorTotal += $variavel[$x]['$valor'];

mas o comando tá me retornando apenas:


0 0 0 0 0 0 0 0 0 0

mudei algumas variáveis, mas quando não dá erro, mostra isso...
Meu último trabalho:
http://www.iconsorciofiat.com.br.

#10 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 16/05/2011, 10:50

legal!!
mas fiquei meio confuso nesse comando...
o levantamento dos dados está as sim:

	for($x;$x<$linhas;$x++)
{
$contrato=mysql_result($queryvalor,$x,'NG.contrato');
$relacao=mysql_result($queryvalor,$x,'NG.relacao');
$pago=mysql_result($queryvalor,$x,'NG.pago');
$valor=mysql_result($queryvalor,$x,'total');
$solicitante=mysql_result($queryvalor,$x,'NG.solicitante');
$operador=mysql_result($queryvalor,$x,'operador');

$valorTotal += $variavel[$x]['$valor'];

mas o comando tá me retornando apenas:


0 0 0 0 0 0 0 0 0 0

mudei algumas variáveis, mas quando não dá erro, mostra isso...



Fax o seguinte:
$valorTotal = 0;
for($x;$x<$linhas;$x++){
	$contrato=mysql_result($queryvalor,$x,'NG.contrato');
	$relacao=mysql_result($queryvalor,$x,'NG.relacao');
	$pago=mysql_result($queryvalor,$x,'NG.pago');
	$valor=mysql_result($queryvalor,$x,'total');
	$solicitante=mysql_result($queryvalor,$x,'NG.solicitante');
	$operador=mysql_result($queryvalor,$x,'operador');

        $valorTotal += $valor;


#11 horacio2009

horacio2009

    Ativo

  • Usuários
  • 371 posts
  • Sexo:Não informado

Posted 16/05/2011, 15:05

Deu certo, Klerison!!!
muito obrigado pela força!!!
grande abraço!!!
Horácio
Meu último trabalho:
http://www.iconsorciofiat.com.br.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq