Ir para conteúdo

POWERED BY:

Arquivado

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

vitorlouzada

Fazer select em duas tabelas

Recommended Posts

Pessoal estou com um mais um problema aqui que tenho certeza que poderão me ajudar novamente...

 

é o seguinte...

 

eu quero todos os lançamentos da tabela contas_pagar... e todos os lançamentos da tabela contas_receber de uma determinada data e de de um determinado banco, que esteja como situacao paga...

 

Só que na exibição... teria que ficar se fosse um extrato.. tipo...

 

COD | Documento | data | credito | debito

 

 

Ai ia aparecenedo os valores em ordem de data, o que for da tabela contas a receber.. o valor apareceria em credito.. e o que for de contas_pagar em debito...

 

Só que está sendo exibido todoas os dados no campo debito... mesmo que eles sejam referente a tabela contas_receber...

 

o Select que estou fazendo é:

 

"SELECT código,documento,data_vcto,valor FROM contas_pagar WHERE bancos ='"&Request.form("bancos")&"' AND data_vcto BETWEEN '"&Request.form("string_busca")&"' AND '"&request.form("string_busca2")&"' Union SELECT código,documento,data_vcto,valor_recebido FROM contas_receber WHERE bancos ='"&Request.form("bancos")&"' AND data_vcto BETWEEN '"&Request.form("string_busca")&"' AND '"&request.form("string_busca2")&"' ORDER BY data_vcto"

 

As duas tabelas não possuem dados em comuns, são dados distintos... lançamentos de contas pagas e uma e lançamentos de contas recebidas em outra...

 

Me ajudem !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opá cara entendi o q você quer, tenho mais ou menos isso selecionar os dados de duas tabelas ....

 

Mas me diga cara ... você citou q ñ existe dados em comum ... mas ao receber a conta você ñ gera um código no banco e na hora de lançar as contas, as pagas você ñ teria q fazer refência ao codigo da conta recebida ??? Pois imagine um seguinte você recebeu uma conta com um nome "X" e a empresa mudou o nome "X" para o nome "Y", você vai pagar a conta com o nome "Y" OK, mas e no controle do seu sistema como eu vou saber que a conta paga "Y" é do clinte "X". Pois no recebimento de contas vai constar a conta "X" ????

 

Acho melhor você fazer uma referência da conta paga com a conta recebida, pois ñ tem como você pagar a conta sem ter recebido correto ??

 

 

Ai sim você faz o q você quer pefeitamente, ñ q da maneira q você quer ñ dá certo .... Mas só acho melhor você referenciar para dá ñ ter falha nessa parte do seu sistema ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz... eu não entendi muito bem o que você disse quanto a referenciar...

 

na verdade...como sou um pouco novato em programação, pode ser que a minha lógica tenha sido um pouco primitiva...

 

A minha idéia o seguinte...

 

Chegou a conta a pagar... eu lanço no sistema, e na hora de selecionar o fornecedor, o sistema me dá todos os fornecedores que já tem cadastrado... ai é só eu selecionar de quem é a conta e preencher os demais dados, como tipo de documento, data de vencimento, valor, centro de custos e etc...

 

Depois para pagar essa conta, eu busca ela na consulta através do cód dela ou pelas contas em aberta daquele fornecedor... e altero a situação de "Em Aberto" para "paga"... e a partir dai eu vo gerando relatórios e etc...

 

A mesma lógica eu usei para o contas a receber...

 

são tipo duas tabelas independentes... por isso não tem dados em comum... no contas a receber, eu lanço o que eu tenho pra receber de meus clientes... e no contas a pagar os q tenho a pagar dos meus fornecedores...

 

 

Deu pra entender???

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é o problema com a consulta que você postou? não está funcionando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK você seleciona o fornecedor para saber de quem é a conta, ou seja você referência

("relaciona") a conta ao fornecedor correto ??? e você grava a conta em uma tabela ok ???

 

Partindo da idéia q seja isso :::

 

imagine todos os fornecedores cadastrados, e tbm todas as contas cadastradas para determinado fornecedor ... exemplo

 

fornecedores

id	fornecedores
1		X
2 		Z

contas_pagar

id	documento 	fornecedor
1	compra X			X

ou seja você tem uma conta do fonecedor X para você pagar ... mas esse fornecedor mudou de

nome agora ele se chama "Y" ñ mais "X", iria mudar a tabela fornecedores correto, iria

ficar assim ::

fornecedores

id	fornecedores
1		 Y
2 		 Z

correto ??

 

E na tabela contas_pagar, vai ficar assim

contas_pagar

id	documento 	fornecedor
1	compra X			 y

ou assim

 

contas_pagar

id	documento 	fornecedor
1	compra X			 X

 

obs: só para entender, como está o seu BD se existe relacionamento

Compartilhar este post


Link para o post
Compartilhar em outros sites

É nesse caso...

 

fica como estava antes, se você mudar o nome do fornecedor, ele não muda o fornecedor na tabela contas a pagar..

 

ficaria então:

 

id	documento	 fornecedor
1	compra X			 X

Meus "relacionamentos" só só a base de código... para puxar na hora de inserir... mas depois que insere, só se eu entrr no registro e alterar tb...

 

Agora que você me deu essa idéia.. poderia me ensinar como fazer relacionamentos??

Realmente ficaria muito mais fácil de se trabalhar...

rsrsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

qd você vai inserir na tabela as contas a pagar possivelmente no formulário você deve estar passando nome do fornecedor

mais ou menos assim ...

<select name="fornecedor">
<%while not rs.EOF%>
<option><%=rs("nome_fonecedor")%></option>
<%rs.Movenext
wend %></select>

em vez de passar o nome você passa o id do fornecedor assim ::

<%while not rs.EOF%>
<option value="<%=rs("id")%>"><%=rs("nome_fonecedor")%></option>
<%rs.Movenext
wend %></select>

a sua tabela fornecEDores seria alterada do cliente "X" agora para "Y".

 

a tabela ficaria assim ::

 

fornecedores

id	fornecedores
1		   Y

e na tabela contas a pagar ficaria assim ::

 

contas_pagar

id	documento			  fornecedor
1	compra X				   1

obs: esse 1 no campo fornecedor é o ID dele, ou seja sempre q eu alterar o nome dele ele continuará sendo 1, independente do nome de fornecedor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom você ñ precisa inserir as contas pagas correto ? você apenas precisa alterar a conta recebida, de status -> aberta no recebimento, e fechada no pagamento ... Sua sql ficaria assim :::

 

SELECT CP.fornecedor, F.nome_fornecedor FROM contas_pagar as P LEFT OUTER JOIN fornecedores as F on CP.fornecedor = F.id WHERE CP.fornecedor = F.id

 

obs: Para usar o nome dos campos basta usar o apelido da tabela CP para contas_pagar e F para fornecedores, o . e o nome do campo

 

ex: CP.fornecedor, F.nome_fornecedor

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.