[firebase-br] Consulta complexa

Paulo Portella pportellaa.firebase em gmail.com
Qua Abr 11 12:05:56 -03 2012


Experimenta isso por favor:

select
        x.matricula,
        x.nome,
        x.data_admissao,
        w.numero_ato,
        w.data_ato,
        w.tipo_ato
from FUNCIONARIO x
   LEFT OUTER JOIN FUNCIONARIO_SIGA w on (w.matricula = x.matricula)
where extract(month from x.data_admissao) = :mes
   and extract(year from x.data_admissao)  = :ano


"Vivam de maneira que as pessoas que os conheçam, ainda que não conheçam a CRISTO, queiram CONHECÊ-LO por conhecerem vocês"
H. David Burton


Em 11/04/2012 10:14, Hélio Oliveira escreveu:
> Bom dia Colegas!
>
> Tenho duas tabelas (FUNCIONARIO e FUNCIONARIO_SIGA) com uma relação de 
> 1 x N ou seja, um Funcionário pode ter um ou n-registros na tabela 
> FUNCIONARIO_SIGA. Acontece que ao fazer o select:
>
> select distinct
>        x.matricula,
>        x.nome,
>        x.data_admissao,
>        w.numero_ato,
>        w.data_ato,
>        w.tipo_ato
> from FUNCIONARIO x
>   join FUNCIONARIO_SIGA w on (w.matricula = x.matricula)
> where extract(month from x.data_admissao) = :mes
>   and extract(year from x.data_admissao)  = :ano
>
> Se coloco mes = 1 e ano = 1995 deveria ser retornado apenas 2 
> registros, já que só há 2 funcionários admitidos no mês 1/1995, porém 
> esta consulta me retorna 6 registros devido a cada um dos funcionários 
> ter na tabela FUNCIONARIO_SIGA 3 registros cada.
>
> Há alguma forma de ser contornado isto, fazendo com que a referida 
> consulta só me retorne os 2 registros?
>




Mais detalhes sobre a lista de discussão lista