kania 0 Denunciar post Postado Agosto 19, 2008 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
giesta 29 Denunciar post Postado Agosto 20, 2008 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
kania 0 Denunciar post Postado Agosto 20, 2008 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
kania 0 Denunciar post Postado Agosto 20, 2008 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
giesta 29 Denunciar post Postado Agosto 20, 2008 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
kania 0 Denunciar post Postado Agosto 20, 2008 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
giesta 29 Denunciar post Postado Agosto 20, 2008 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
kania 0 Denunciar post Postado Agosto 20, 2008 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