Ir para conteúdo

POWERED BY:

Arquivado

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

kania

Totalizar valores selecionados anteriormente

Recommended Posts

Olá pessoal,

 

tenho o seguinte select

 

select a.nome, a.inscricao, a.cpfcnpj, coalesce(sum(c.valor),0) as TOTALLOJA from ASSOCIADOS3 a, CONTACORRENTE3 c where c.inscricao = a.inscricao and a.cpfcnpj ='"&CPFCNPJ&"' and c.sinal='C' GROUP BY c.inscricao

este select me lista todos os pagamentos efetuados para um determinado CPF independente da quantidade de login que ele possua desde que com o mesmo CPF.

O que estou tentando fazer agora é dar um total geral nesta tabela, tem como fazer isto?

Pegar estes valors selecionados neste select e dar um total de tudo selecionado?

 

Estou trabalhando com asp, abaixo o código da pagina.

 

<!--#Include file="../conexao/conn.asp"-->
<%Response.Charset = "ISO-8859-1" %>
<%
'IDASSOCIADOASSOCIADO = session("IDASSOCIADO")
LOGIN = session("logar")
ID = session("id")


CPFCNPJ= request.Form("numerodoc")

Set RS1 = Server.CreateObject("adodb.recordset")
SQL1 = "select * from ASSOCIADOS3 where INSCRICAO='"&LOGIN&"'" 
RS1.Open SQL1,Conn,3,3

DOCORIGINAL = RS1("cpfcnpj")

if CPFCNPJ = "" THEN

response.Write(" VOCÊ DEVE PREENCHER O CAMPO COM <b>CPF OU CNPJ</b> DE SEU CADASTRO PARA REALIZAR SUA PESQUIZA")

else
%>
<%
Set RS = Server.CreateObject("adodb.recordset")
'SQL = "select * from ASSOCIADOS3 where cpfcnpj='"&CPFCNPJ&"'" 
SQL = "select a.nome, a.inscricao, a.cpfcnpj, coalesce(sum(c.valor),0) as TOTALLOJA from ASSOCIADOS3 a, CONTACORRENTE3 c where c.inscricao = a.inscricao and a.cpfcnpj ='"&CPFCNPJ&"' and c.sinal='C' GROUP BY c.inscricao"
RS.Open SQL,Conn,3,3

if RS("CPFCNPJ") <> DOCORIGINAL then

response.write ("<span class=""fonte_vermelha"">O CPF OU CNPJ DIGITADO NÃO CORRESPONDE AO MESMO DO SEU CADASTRO. CASO ESTEJA TENTANDO EFETUAR UMA PESQUISA DE CPF OU CNPJ QUE NÃO SEJA IGUAL AO DA SUA CONTA PRINCIPAL, POR FAVOR SAIA DA SUA ÁREA DE ASSOCIADO E ENTRE NOVAMENTE COM O LOGIN DA LOJA QUE PRETENDE PESQUISAR.</span>")

else
%>
<link href="../css/estilo_painel.css" rel="stylesheet" type="text/css" />
<link href="../css/estilo_site.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
	background-color: #c9bfbc;
}
-->
</style>
<table width="100%" border="0" cellspacing="10" cellpadding="5">
  <tr>
	<td height="20" align="center" class="tabelaTituloCarrinho">NOME</td>
	<td height="20" align="center" class="tabelaTituloCarrinho">LOGIN</td>
	<td height="20" align="center" class="tabelaTituloCarrinho">TOTAL DA LOJA</td>
  </tr>

<%
Do until rs.EOF

INSCRICAOASSOCIADO = RS("INSCRICAO")
DOCUMENTO = RS("CPFCNPJ")
NOME = RS("NOME")
TOTALLOJA = RS("TOTALLOJA")
Cor = not Cor


Set RSDESC = Server.CreateObject("adodb.recordset")
'SQL = "select * from ASSOCIADOS3 where cpfcnpj='"&CPFCNPJ&"'" 
DESC = "select coalesce(sum(valor),0) as TOTALDESC from CONTACORRENTE3 where inscricao ='"&INSCRICAOASSOCIADO&"' and sinal='D'"
RSDESC.Open DESC,Conn,3,3

VALORDESC = RSDESC("TOTALDESC")

VALORLIQ = TOTALLOJA - VALORDESC

TOTALGERAL = TOTALPARCIAL - VALORLIQ

%> 

  <tr bgcolor="#e1e2e3" height="20">
	<td align="left" class="fonte_global_preta12"><%=NOME%></td>
	<td align="left" class="fonte_global_preta12"><%=INSCRICAOASSOCIADO%></td>
	<td align="right" class="fonte_global_preta12"><%=formatcurrency(VALORLIQ)%></td>
 <%
rs.movenext
loop
rs.Close
Set rs = Nothing
end if
end if
%> </tr>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

select a.nome, a.inscricao, a.cpfcnpj, coalesce(sum(c.valor),0) as TOTALLOJA from ASSOCIADOS3 a, CONTACORRENTE3 c where c.inscricao = a.inscricao and a.cpfcnpj ='"&CPFCNPJ&"' and c.sinal='C' GROUP BY c.inscricao with rollup

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá giesta, obrigado pela sua resposta, me diga uma coisa, e como eu farei para imprimir na tela somente este total tendo em vista que neste select com o with rollup

no final dele ele lista tudo conforme estava senod feito porem me da uma nova linha com o total, você sabe como da para imprimir na tela somente este valor, ou eu coolocar um nome para esta linha do total, pelo que notei é dado sempre o nome pelo tuimo registro da listagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte, consegui fazendo uma mudança simples no select

 

SQL = "select a.nome, a.inscricao, a.cpfcnpj, coalesce(sum(c.valor),0) as TOTALLOJAC from ASSOCIADOS3 a, CONTACORRENTE3 c where c.inscricao = a.inscricao and a.cpfcnpj ='"&CPFCNPJ&"' and c.sinal='C' GROUP BY a.cpfcnpj with rollup"

mudei o GROUP BY do select para agrupar por CPFCNPJ tendo em vista que sempre serão os mesmo dentro do select, eu tava comendo bola, uma coisa simples de nada para mudar e as vezes agente não encherga, hehehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para seu conhecimento de como seria:

 

select a.nome, IFNULL(c.inscricao,'Total'), a.cpfcnpj, coalesce(sum(c.valor),0) as TOTALLOJA from ASSOCIADOS3 a, CONTACORRENTE3 c where c.inscricao = a.inscricao and a.cpfcnpj ='"&CPFCNPJ&"' and c.sinal='C' GROUP BY c.inscricao with rollup

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade eu tentei utilizar a condição IFFNULL porem é estranho porque para mim o select não esta retornando o campo como NULL, mas sim esta trazendo o campo com o nome do utimop registro selecionado, como um clone do campo nome

 

ex:

 

nome | total

=========================

jose da silva | R$ 100,00

mauro aplone | R$ 200,00

Silva jardim | R$ 100,00

Silva jardim | R$ 400,00

 

Por isso utilizei um forma de agrupar tudo trazendo somente um registro no select

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso pq você mandou agrupar por pela tabela c e mandou exibir a tabela a (o q teoricamente nem poderia) ... se você olhar no meu exemplo eu mudei a tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verdade, não tinha notado a modificação no seu select, valeu a dica, aproveitando de sua disponibilidade, você sabe se quando fazemos um select tem como realizar operações aritiméticas dentro do mesmo?

Hoje eu faço 2 selects um que verifica se o valor é um crédito e outro "C" e ou se é Débito "D", e dai efetuo o cálculo entre eles, pois não se se é possivel fazer isto dentro de um mesmo select.

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.