Ir para conteúdo

Arquivado

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

TalPaipai

Relacionamento entre Tabelas

Recommended Posts

Bom dia pessoal,

Eu tenho a seguinte instrução SQL:

SELECT * from CONTAS_RECEBER WHERE (DATAVENCIMENTO - cast('14.09.2016' as date) >= 0 )
AND (DATAVENCIMENTO - cast('14.09.2016' as date) <= 5) AND NOT (SITUACAO = '4')
AND ((STATUS IS NULL) OR (STATUS <> 'Quitado') OR (STATUS = '')) ORDER BY DATAVENCIMENTO ASC

Eu rodo ela no IBExpert e obtenho os resultados desejados, porem estou tendo que unir ou relacionar ela com a seguinte instrução SQL:

SELECT * FROM CONTAS

O problema que as tabelas tem campos iguais, tentei concatenar elas usando contas.descricao, etc... mas quando vou rodar dar erro, a estrutura das tabelas são:

p3td4.png

Como posso relacionar sem dar erros?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando tabelas tem campos de mesmo nome é preciso qualifica-las

SELECT TABELA1.CAMPOX, TABELA2.CAMPOX ...
TABELA1.CAMPOX = TABELA2.CAMPOX

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, eu consegui fazer a consulta, o meu sql ficou assim oh:

SELECT CONTAS_RECEBER.STATUS,  CONTAS_RECEBER.CLIENTE, CONTAS_RECEBER.DATAEMISSAO,
CONTAS_RECEBER.DATAVENCIMENTO, CONTAS_RECEBER.DATAPAGAMENTO, CONTAS_RECEBER.PARCELA,
CONTAS_RECEBER.VALORPAGAR, CONTAS_RECEBER.DESCRICAO, CONTAS.DESCRICAO AS CFORNECEDOR,
CONTAS.ID from CONTAS_RECEBER, CONTAS WHERE (DATAVENCIMENTO - cast('14.09.2016' as date) >= 0 )
AND (DATAVENCIMENTO - cast('14.09.2016' as date) <= 5) AND NOT (SITUACAO = '4')
AND ((STATUS IS NULL) OR (STATUS <> 'Quitado') OR (STATUS = '')) ORDER BY DATAVENCIMENTO ASC

Porem a segunda instrução que tu me passou eu não entendi:

TABELA1.CAMPOX = TABELA2.CAMPOX

Faz se necessário ela no meu SQL? Eu tenho que dizer que é igual o ID da tabela1 com a tabela2 ? Ou eu comparo o ID da tabela 1 com o campo Descrição da tabela 2?

Compartilhar este post


Link para o post
Compartilhar em outros sites

:huh: tipo se fosse mais de dua tabelas eu teria que usar o segundo exemplo, igualando a um campo né ? A ideia acima é iguala o id da tabela A com um campo da tabela B, seja ele id também ou não confere? Se tu puder postar um exemplo do uso desse segundo exemplo abaixo agradeço, entendi parcialmente, mas desde já obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT S.StockID, COUNT( L.OrderID )
 FROM Stock S LEFT OUTER JOIN Lineitem L
 ON S.StockID = L.StockID
 GROUP BY S.StockID

Fonte :OUTER JOIN




			
		

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.