Estou procurando ajuda com uma consulta do Access para filtrar dados em uma tabela de outra tabela onde eles aparecem em duas colunas. Eu tenho as seguintes tabelas:
Check_tbl
EU IA | C |
---|---|
1 | 123 |
2 | 456 |
3 | 789 |
4 | FDFHSFHGF |
5 | SDFGDGFDS |
6 | abc |
fonte_tbl
EU IA | UM | B | F |
---|---|---|---|
1 | 123 | abc | 156.pdf |
2 | 456 | 440.pdf | |
3 | DEF | 149.pdf | |
4 | 789 | IGF | 160.pdf |
5 | 111 | 178.pdf | |
6 | JKL | 506.pdf | |
7 | 156.pdf |
Preciso que a consulta retorne todas as entradas em check_tbl.C que aparecem em source_tbl.A e source_tbl.B, bem como source_tbl.F, mas preciso remover duplicatas onde check_tbl.C aparece em source_tbl.A E source_tbl.B (ou seja, apenas retornar um dos dois resultados)
O resultado retornado deve ficar assim:
resultados
C | F |
---|---|
abc | 156.pdf |
456 | 440.pdf |
789 | 160.pdf |
como o valor 123 e ABC de check_tbl.C aparecem em source_tbl.A e source_tbl.B respectivamente, apenas um deve ser retornado.
Até agora eu tenho isso:
SELECT Check_tbl.C, source_tbl.F
FROM Check_tbl
INNER JOIN source_tbl ON Check_tbl.C = source_tbl.A
UNION SELECT Check_tbl.C, source_tbl.F
FROM Check_tbl
INNER JOIN source_tbl ON Check_tbl.C = source_tbl.B;
mas não filtra duplicatas e retorna apenas um valor onde os dados aparecem em source_tbl.A e source_tbl.B.
Se alguém puder ajudar com isso eu ficaria grato.
Se você quiser o primeiro C com o ID mais baixo na sua tabela de resultados.
A consulta a seguir simula um ROW_NUMBER
Resultado: