Ir para conteúdo
Fórum Script Brasil
  • 0

Somar duas colunas de tabelas diferentes


Eder Melop

Pergunta

Bom dia,

Gostaria que alguém me ajudasse, parace ser simples pois não consegui fazer funcionar... :wacko:

não achei em lugar nenhum!! Bom vamos ao exemplo bem basico:

Tenho duas tabelas num banco de dado access

- bd1.mdb

> dentro do banco

tabela 1

id | produto1 | valor | id_cliente | recebido

1 | memoria | 95,00 | 5 | true

2 | processador | 120,00 | 6 | true

3 | gabinete | 100,00 | 5 | false

tabela 2

id | produto2 | valor | id_cliente | recebido

1 | placa-mae | 90,00 | 5 | true

2 | video | 100,00 | 6 | false

O que realmente eu queria é apenas somar a coluna (valor) das duas tabelas que simplesmente o resultado do id_cliente 5 é 185,00

No caso a busca seria pelo ID_CLIENTE!

A Function usada abaixo é apenas para imprimir como R$, ignorando isso veja a fonte:

<%

id_cliente = request.form("txt_id")

Function FormataMoeda(valor)

sp = Mid(FormatNumber(1000, 0, -1, 0, -1),2,1)

sv = Mid(FormatNumber(0.1, 1, -1, 0, -1),2,1)

If isNumeric(valor) Then

v = FormatNumber (valor, 2, -1, 0, -1)

Else

v = FormatNumber (0, 2, -1, 0, -1)

End If

v = Replace(v, sp, "p")

v = Replace(v, sv, "v")

v = Replace(v, "p", ".")

v = Replace(v, "v", ",")

FormataMoeda = v

End Function

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("bd1.mdb")

set cons = server.CreateObject("adodb.recordset")

cons.open "Select sum(tabela1.valor) + sum(tabela2.valor) from tabela1 INNER JOIN tabela2 ON tabela1.id_cliente=tabela2.id_cliente group by tabela1.id_cliente , tabela2.id_cliente , tabela1.recebido=true, tabela2.recebido=true ",Objconn

valor = cons(0)

response.write "R$ "&FormataMoeda(valor)&""

cons.close

set cons= nothing

%>

já tentei de todos os jeitos e nenhum resultado positivo, se alguém puder quebrar a cabeça e ajudar, agradeço!!

vlw

Editado por Eder Melop
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

o.0

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("bd1.mdb")
set cons = server.CreateObject("adodb.recordset")
cons.open "SELECT Tabela1.id, Tabela1.valor+Tabela2.valor AS Expr1 FROM Tabela1, Tabela2 WHERE Tabela1.id="&id_cliente,Objconn
if not cons.eof then
valor = cons(Expr1) 
response.write "R$ "&FormataMoeda(valor)
else
response.write "Nada encontrado"
end if
cons.close
set cons= nothing

Link para o comentário
Compartilhar em outros sites

  • 0
o.0

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("bd1.mdb")
set cons = server.CreateObject("adodb.recordset")
cons.open "SELECT Tabela1.id, Tabela1.valor+Tabela2.valor AS Expr1 FROM Tabela1, Tabela2 WHERE Tabela1.id="&id_cliente,Objconn
if not cons.eof then
valor = cons(Expr1) 
response.write "R$ "&FormataMoeda(valor)
else
response.write "Nada encontrado"
end if
cons.close
set cons= nothing
Opa, B) Consegui resolver esse problema, na verdade tudo ficou assim; primeiro a pagina de de busca; busca.htm
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nova pagina 1</title>
</head>

<body>

<form method="POST" action="bd.asp">
    <p><input type="text" name="id" id=id size="20"><input type="submit" value="Submeter" name="B1"><input type="reset" value="Redefinir" name="B2"></p>
</form>

</body>

</html>
agora a pagina do resultado; bd.asp
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nova pagina 1</title>
</head>

<body>
<%
id_cliente = request.form("id")

Function FormataMoeda(valor)
sp = Mid(FormatNumber(1000, 0, -1, 0, -1),2,1)
sv = Mid(FormatNumber(0.1, 1, -1, 0, -1),2,1)
If isNumeric(valor) Then
v = FormatNumber (valor, 2, -1, 0, -1)
Else
v = FormatNumber (0, 2, -1, 0, -1)
End If
v = Replace(v, sp, "p")
v = Replace(v, sv, "v")
v = Replace(v, "p", ".")
v = Replace(v, "v", ",")
FormataMoeda = v
End Function


Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("bd1.mdb")
set cons = server.CreateObject("adodb.recordset")
cons.open "Select sum(valor) from (select * from tabela1 UNION select * from tabela2) where recebido=true and id_cliente='"&id_cliente&"' ",Objconn
valor = cons(0)
response.write "R$ "&FormataMoeda(valor)&""
cons.close
set cons= nothing

%>
</body>

</html>

Obs: Lembrando que as tabelas tem que ter as mesmas quantidades de colunas!

Bareta muito obrigado pela atençao!!

Espero ajudar alguém que esteja com o mesmo problema!!!

Abraço e em breve tem mais... ^_^

Editado por Eder Melop
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...