[firebase-br] Join trazer qtde determinada

CPD (Borborema) cpd em borborema.com.br
Ter Out 13 14:29:01 -03 2009


Eduardo,

    Eu ja tinha estado dessa forma, mas ele critica os campos do funcionário 
da join anterior. no caso cfg_empresa and cfg_cpf. Corrigindo seu select 
ficaria assim, mas como eu disse ele critica os campos, ja utilizei 
inclusive alias para relacionar os campos mais mesmo assim ele critica.

select sfo_codigo, sfo_nome, cfg_chapa, cfg_nome, fer_funcionario, fer_ano, 
fer_mes from setores_folha
left outer join funcionarios on cfg_empresa = sfo_empresa and cfg_setor = 
sfo_codigo and cfg_condicao = '1'
left outer join (select first 1 * from ferias where fer_empresa = 
cfg_empresa and fer_funcionario = cfg_cpf order by fer_ano desc, fer_mes 
desc) on 1 = 1
where sfo_empresa = :empresa and sfo_codigo = :setor

Erro :

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
CFG_EMPRESA.
At line 4, column 29.

----- Original Message ----- 
From: "Eduardo Jedliczka" <edujed em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, October 13, 2009 2:07 PM
Subject: Re: [firebase-br] Join trazer qtde determinada


Se estiver utilizando o Firebird 2.1...

select sfo_codigo, sfo_nome, cfg_chapa, cfg_nome, fer_funcionario, fer_ano,
fer_mes from setores_folha
left outer join funcionarios on cfg_empresa = sfo_empresa and cfg_setor =
sfo_codigo and cfg_condicao = '1'
left outer join (select first 1 * from ferias on fer_empresa = cfg_empresa
and fer_funcionario = cfg_cpf order by  order by fer_ano des, fer_mes desc)
f
where sfo_empresa = :empresa and sfo_codigo = :setor


Abraço

2009/10/13 CPD (Borborema) <cpd em borborema.com.br>

> Pessoal,
>
>    Tem como eu trazer no join uma quantidade de registro determinada, e
> utilizar o comando order by. Ex :
>
> select sfo_codigo, sfo_nome, cfg_chapa, cfg_nome, fer_funcionario, 
> fer_ano,
> fer_mes from setores_folha
> left outer join funcionarios on cfg_empresa = sfo_empresa and cfg_setor =
> sfo_codigo and cfg_condicao = '1'
> left outer join ferias on fer_empresa = cfg_empresa and fer_funcionario =
> cfg_cpf
> where sfo_empresa = :empresa and sfo_codigo = :setor
>
> no join ferias gostaria de trazer somente a última férias que o 
> funcionario
> teve, da forma que está ele esta trazendo todas as férias do funcionário.
> Gostaria de aplicar algo como "first 1" para trazer somente um registro e
> "order by fer_ano des, fer_mes desc" para que o primeiro registro sejá
> exatamente a útilma. Existe como implementar o first e o order by no join 
> ?
>
> Alexandre C Souza
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
[s]

==========================
Eduardo Jedliczka
Apucarana - Pr
==========================
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista