CONSULTA SQL AGRUPADA

Firebird

07/04/2014

Olá pessoal,

Estou tentando fazer a seguinte consulta:

SELECT B.*, D.NOME AS DELEGACIA, S.NOME FROM BAIXA_VIAS B, DELEGACIAS D, SOCIOS S
WHERE B.COD_SOCIO = S.COD_SOCIO AND B.COD_SOCIO IN (SELECT S.COD_SOCIO FROM SOCIOS WHERE S.COD_DEL = S.COD_DEL)
AND DT_BAIXA BETWEEN '01.02.2014' AND '28.02.2014'

Com tudo ela está me retornando registros duplicados...

Alguém ai se habilita a me dar uma mauzinha... rsrsrsrsrsrsr...

Desde já agradeço.
Marcos Morais

Marcos Morais

Curtidas 0

Respostas

Marisiana Battistella

Marisiana Battistella

07/04/2014

Olá Marcos!
Está faltando um join ligando a tabela DELEGACIAS a uma das outras, veja qual tem foreign key e inclua ele e depois veja se resolveu.
Sugiro, como boas práticas, que não utilize B.*, escreva os nomes dos campos que você precisa que a consulta retorne, isso ajuda a garantir uma melhor performance no SQL.
Outra dica, para que não aconteça de esquecer de fazer todos os joins necessários, é utilizando o padrão ANSI.
GOSTEI 0
POSTAR