How does this Join look properly?

Asked

Viewed 65 times

0

I’ve been doing a lot of research on this Jay and I can’t seem to fix it:

SELECT tbEquipamento.TIPO_EQUIPAMENTO, tbEquipamento.NUMERO_SERIE, tbEquipamento.COD_SITUACAO_FK, tbEquipamento.NUMERO_ATIVO, tbSituacao_Equipamento.SITUACAO
FROM tbEquipamento, tbSituacao_Equipamento
INNER JOIN tbEquipamento_Movimentacao 
ON tbEquipamento.NUMERO_ATIVO = tbEquipamento_Movimentacao.NUMERO_ATIVO_FK
INNER JOIN tbEquipamento
ON tbSituacao_Equipamento.COD_SITUACAO = tbEquipamento.COD_SITUACAO_FK
WHERE (((tbEquipamento_Movimentacao.COD_MOVIMENTACAO_FK)= [rlMovimentacaoEquipamentoSalvo]![txtNumeroTermo]));

What I’m trying to do is that Join:

SELECT tbEquipamento.TIPO_EQUIPAMENTO, tbEquipamento.NUMERO_SERIE, tbEquipamento.COD_SITUACAO_FK, tbEquipamento.NUMERO_ATIVO
FROM tbEquipamento
INNER JOIN tbEquipamento_Movimentacao 
ON tbEquipamento.NUMERO_ATIVO = tbEquipamento_Movimentacao.NUMERO_ATIVO_FK
WHERE (((tbEquipamento_Movimentacao.COD_MOVIMENTACAO_FK)= [rlMovimentacaoEquipamentoSalvo]![txtNumeroTermo]));

(That it’s working)

Show Equipment Status, not Equipment Status Code.

The relationships between the tables are:

tbEquipamento:
  -NUMERO_ATIVO (Primary Key)
  -TIPO_EQUIPAMENTO
  -NUMERO_SERIE
  -COD_SITUACAO_FK (Foreing Key)

tbSituacao_Equipamento:
  -COD_SITUACAO (Primary Key)
  -SITUACAO

tbEquipamento_Movimentacao: (Entidade fraca)
  -NUMERO_ATIVO_FK (Foreing Key)
  -COD_MOVIMENTACAO_FK(Foreing Key)

2 answers

1


Change the column COD_SITUACAO_FK for SITUACAO:

SELECT tbEquipamento.TIPO_EQUIPAMENTO,
       tbEquipamento.NUMERO_SERIE,
       tbSituacao_Equipamento.SITUACAO,
       tbEquipamento.NUMERO_ATIVO
  FROM ((tbEquipamento
 INNER JOIN tbSituacao_Equipamento ON tbSituacao_Equipamento.COD_SITUACAO = tbEquipamento.COD_SITUACAO_FK)
 INNER JOIN tbEquipamento_Movimentacao ON tbEquipamento.NUMERO_ATIVO = tbEquipamento_Movimentacao.NUMERO_ATIVO_FK)
 WHERE (((tbEquipamento_Movimentacao.COD_MOVIMENTACAO_FK)= [rlMovimentacaoEquipamentoSalvo]![txtNumeroTermo]));
  • Hello Sorack, thanks for the help. This select did not work. I believe that is pq the situation is in another table, and not in the equipment table.

  • tbSituaca_Equipment

  • It didn’t work either, because the "tbEquipment" doesn’t have the FK of the "tbSituaca_Equipment"

  • Good, now it worked. But it is showing all the equipment, even using the clause "WHERE ((((tbEquipment_Movimentacao.COD_MOVIMENTACAO_FK)=[rlMovimentacaEquipment]! [txtNumeroTerm]));"

  • And how would it look ?

  • Gave an error: Syntax error (missing operator) in query expression 'tbSituaca_Equipment.COD_SITUACAO = tbEquipment.COD_SITUACAO_FK [...]"

  • @Hail see now

  • Good, now it’s... Thank you very much @Sorack

Show 3 more comments

0

all right? One of the first details I realized is that you were indicating two tables in the select and you repeated one of them in the INNER JOIN. I think it is better to keep only one of the tables in select and do the rest using the INNER JOIN. I made some corrections, maybe it solves your problem. However it would be great you provide as is the relational diagram from your tables so we know how to help you better.

Follows the corrections:

SELECT tbEquipamento.TIPO_EQUIPAMENTO, tbEquipamento.NUMERO_SERIE, tbEquipamento.COD_SITUACAO_FK, tbEquipamento.NUMERO_ATIVO, tbSituacao_Equipamento.SITUACAO 
FROM tbSituacao_Equipamento
INNER JOIN tbEquipamento ON tbEquipamento.COD_SITUACAO_FK = tbSituacao_Equipamento.COD_SITUACAO
INNER JOIN tbEquipamento_Movimentacao ON tbEquipamento_Movimentacao.NUMERO_ATIVO_FK = tbEquipamento.NUMERO_ATIVO 
WHERE (((tbEquipamento_Movimentacao.COD_MOVIMENTACAO_FK)= [rlMovimentacaoEquipamentoSalvo]![txtNumeroTermo]));

In case the doubt is not resolved, I’m willing to continue helping you.

  • All right, Luis. Thanks for the help, but this select gave a "syntax error" in access

  • Could you indicate the syntax error?

  • Show "syntax error. Operator missing from query"

Browser other questions tagged

You are not signed in. Login or sign up in order to post.