.Andreia. Postado Agosto 4, 2005 Denunciar Share Postado Agosto 4, 2005 Pessoal,a aplicação é o seguinte:Tabela 1:cod_projeto, data, valor, codigo_contaTabela 2:cod_projeto, data, valor, codigo_contaEu 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,00Tabela2:Cod_Conta Valor 1 10,00 2 20,00 2 20,00Resultado:Cod_Conta 1 = 40,00Cod_Conta 2 = 60,00Total Geral = 100,00Tentei fazer com inner join mas não funcionou porque as tabelas entre si não tem nenhuma ID igual.vlws Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JCMPJ Postado Agosto 4, 2005 Denunciar Share Postado Agosto 4, 2005 Mas o codigo_conta não é igual mas duas tabelas? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Agosto 4, 2005 Autor Denunciar Share Postado Agosto 4, 2005 Mas o codigo_conta não é igual mas duas tabelas? o codigo conta é igual sima questao é que eu tenho um where pra tabela1:selecionar todas as cod_contas menos a cod_conta 25porque essa cod_25 é a tabela 2, e dentro da tabela 2 seleciona tudo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Agosto 4, 2005 Autor Denunciar Share Postado Agosto 4, 2005 então,eu tentei fazer inner join, enquanto as cod_contas fossem iguais iam-se somando mas não funcionouerro: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 dataproblema 3: enquanto em 1 seleciona todas menos a cod_conta 25 na outra tem que selecionar todasqual a melhor forma entaum? to achando que inner join ta é atrapalhando.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Principe Postado Agosto 4, 2005 Denunciar Share Postado Agosto 4, 2005 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 ..." Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Agosto 5, 2005 Autor Denunciar Share Postado Agosto 5, 2005 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 | Valor1 - 10,002 - 50,005 - 70,009 - 100,00 eCod_Conta | Valor1 - 20,005 - 30,007 - 50,009 - 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 | Valor1 - 30,002 - 50,005 - 100,007 - 50,009 - 10,00alguém tem alguma dica de como fazer esse ultimo loop?? o processamente tem que ser na mesma paginavls Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Principe Postado Agosto 5, 2005 Denunciar Share Postado Agosto 5, 2005 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 ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Agosto 5, 2005 Autor Denunciar Share Postado Agosto 5, 2005 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 ? eu coloquei um contador pra cada, ou seja.. enquanto a consulta1 não se finaliza conta... e enquanto a consulta2 não se finaliza contaAi 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.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Agosto 5, 2005 Autor Denunciar Share Postado Agosto 5, 2005 é 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JCMPJ Postado Agosto 5, 2005 Denunciar Share Postado Agosto 5, 2005 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Agosto 5, 2005 Autor Denunciar Share Postado Agosto 5, 2005 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... vl Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Agosto 5, 2005 Denunciar Share Postado Agosto 5, 2005 (editado) se o cod_conta for numerico da: Editado Agosto 5, 2005 por bareta Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
.Andreia.
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
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.