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

Soma De Valores, Em Base De Duas Tabelas


.Andreia.

Pergunta

Pessoal,

a aplicação é o seguinte:

Tabela 1:

cod_projeto, data, valor, codigo_conta

Tabela 2:

cod_projeto, data, valor, codigo_conta

Eu só coloquei os campos coincidentes. Eu preciso é que tudo que for igual de uma, some com a outra.

Exemplo:

Tabela1:

Cod_Conta Valor

1 10,00

1 20,00

2 20,00

Tabela2:

Cod_Conta Valor

1 10,00

2 20,00

2 20,00

Resultado:

Cod_Conta 1 = 40,00

Cod_Conta 2 = 60,00

Total Geral = 100,00

Tentei fazer com inner join mas não funcionou porque as tabelas entre si não tem nenhuma ID igual.

vlws

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
Mas o codigo_conta não é igual mas duas tabelas?

o codigo conta é igual sim

a questao é que eu tenho um where pra tabela1:

selecionar todas as cod_contas menos a cod_conta 25

porque essa cod_25 é a tabela 2, e dentro da tabela 2 seleciona tudo.

Link para o comentário
Compartilhar em outros sites

  • 0

então,

eu tentei fazer inner join, enquanto as cod_contas fossem iguais iam-se somando mas não funcionou

erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][Driver ODBC para Microsoft Access]

O campo especificado 'codigo_conta' pode se referir a mais de uma tabela relacionada na cláusula FROM da instrução SQL.

consulta:

sql = "Select Lancamentos.codigo_conta, SUM(Lancamentos.valor) as total, Lancamentos.codigo_projeto from Lancamentos inner join PAGAMENTO on Lancamentos.codigo_conta = PAGAMENTO.codigo_conta where month(vencimento) = " & mes & " and year(vencimento) = " & ano & " and codigo_conta <> 25 and codigo_projeto = " & projeto & " group by codigo_projeto, codigo_conta order by codigo_projeto, codigo_conta"

problema 2: enquanto em uma tabela se chama vencimento, em outra se chama data

problema 3: enquanto em 1 seleciona todas menos a cod_conta 25 na outra tem que selecionar todas

qual a melhor forma entaum? to achando que inner join ta é atrapalhando..

Link para o comentário
Compartilhar em outros sites

  • 0

Quando você quer trabalhar com duas tabelas e campos idênticos você precisa dizer de qual campo você está se refererindo se não dá esse erro ai "...pode se referir a mais de uma tabela ..." Ex.: sql = "... where nome_tabela.nomecampo = "& request("valor")

E acho que inner join vai resolver seu problema se os campos de comparação nas duas tabelas forem do tipo 'integer' (Número ou Autonumeração),...

sql = "select * from Tabela1 inner join Tabela2 on (Tabela1.cod_conta = Tabela2.cod_conta) where Tabela1.codigoprojeto = "&projeto&" and Tabela1.vencimento = "&vencimento&" and ..."

Link para o comentário
Compartilhar em outros sites

  • 0

O problema que o inner join tb me deu foi porque tb tem Group by.

Estou fazendo de outra forma, duas consultas (uma pra cada tabela), e me retorna:

Exemplo:

Cod_Conta | Valor

1 - 10,00

2 - 50,00

5 - 70,00

9 - 100,00

e

Cod_Conta | Valor

1 - 20,00

5 - 30,00

7 - 50,00

9 - 10,00

Estou tentando fazer um loop seguinte que compara esses dois resultados, enquanto o contador não chega ao fim, compara as Cod_Conta e soma os iguais. Devendo retornar:

Cod_Conta | Valor

1 - 30,00

2 - 50,00

5 - 100,00

7 - 50,00

9 - 10,00

alguém tem alguma dica de como fazer esse ultimo loop?? o processamente tem que ser na mesma pagina

vls

Link para o comentário
Compartilhar em outros sites

  • 0
Então faz um loop dentro do outro usando o valor do loop de fora verificando sempre se é bof ou eof ! ai você faz um select dentro do loop pra verificar se na outra tabela também tem um campo com esse valor do loop externo , sacou ? wink.gif

eu coloquei um contador pra cada, ou seja.. enquanto a consulta1 não se finaliza conta... e enquanto a consulta2 não se finaliza conta

Ai vou ter 2 contadores. Eu estava pensando em fazer o que, comparar qual o maior pra saber ate quanto o loop vai...

O problema é: Como vou fazer outro select sendo que eu já fiz a consulta??? eu to pensando que tem que jogar dentro de arrays, os resultados das tabelas pra comparar... só que eu não estou conseguindo sair deste ponto...

eu tenho os dois resultados das duas consultas, corretas... o problema é fazer o loop de novo pra somar as cod_contas coincidentes.... sad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

é vergonhoso mas eu tenho que contar... a solução que eu encontrei foi jogar os resultados dentro de uma tabela Temporária, somente pra fazer as contas...

Ai sempre que roda a pagina, um script manda deleta tudo de la pra receber novos dados....

maioooooooooooor gambiarra ne, mas quando se precisa de alguma coisa pra logo e a melhor solução não chega, tem que fazer o que se está no alcance.

Fico aguardando se alguém tiver uma ideia melhor, porque sei que isso aqui foi só pra ter o resultado.

vls a todos

Link para o comentário
Compartilhar em outros sites

  • 0
Isso não é uma gambiarra. É a maneira como se implementa um relacionamento muitos-para-muitos que é o que você tinha. É a solução tradicional nestes tipos de casos.

Obrigada pela opiniao JCMPJ, apesar de eu chegar no resultado que queria... odiei a forma, sinto que existe uma melhor.

mas é como você disse, quando se há um n-n talvez a solução seja essa..... ou questao de visao... smile.gif vl

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...