Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rogeriojr

problema com consulta

Recommended Posts

Galera tenho que mecher em uma consulta aqui no meu trampo, mas tem bem dificil, n to entendendo mto bem a logica da consulta, logo abaixo colarei a consulta, e você entenderão, acontece que, em qdo cadastro um salario para o mes 3 por exemplo, se eu buscar o mes 3 n retorna nada, se buscar o mes 4,5,6,7,8.... retorna

 

se olahrem o comando, tem uma parte (que foi a que coloquei q diz) :

 

AND e.dt_inicio
IN (

SELECT MAX( cao_salario.dt_inicio )
FROM cao_salario
WHERE e.co_usuario = cao_salario.co_usuario
AND cao_salario.dt_inicio <= '2008-04-31'
)

 

se tirar essa parte td funciona, mas he necessário continuar, se alguem puder me dar uma luz do pq q n retorna o mes q cadastrei, e somente os meses posteriores, eu agradeço, a consulta toda é:

 

SELECT a . * , e.dt_inicio AS dt_inicio, c.dt_referencia, (
(

SELECT date_format( a.dt_expiracao, '%Y%m' ) <= date_format( CURDATE( ) , '%Y%m' )
)
OR (

SELECT date_format( a.dt_desligamento, '%Y%m' ) <= date_format( CURDATE( ) , '%Y%m' )
AND a.dt_desligamento != '0000-00-00'
AND a.dt_desligamento != NULL
)
) AS inativo, date_format( dt_admissao_empresa, '%d' ) AS dt_admissao_empresa, d.local, e.liq_salario, e.dt_alteracao AS data_alteracao
FROM cao_usuario a, permissao_sistema b, cao_participacao_funcionario c, cao_escritorio d, cao_salario e
WHERE (
date_format( a.dt_expiracao, '%Y%m' ) >=200804
OR a.dt_expiracao IS NULL
OR a.dt_expiracao = ''
)
AND (
date_format( a.dt_desligamento, '%Y%m' ) >=200804
OR a.dt_desligamento = '0000-00-00'
OR a.dt_desligamento = ''
OR a.dt_desligamento IS NULL
)
AND a.co_usuario = b.co_usuario
AND c.co_usuario = a.co_usuario
AND e.co_usuario = a.co_usuario
AND c.co_escritorio = d.co_escritorio
AND e.dt_inicio
IN (

SELECT MAX( cao_salario.dt_inicio )
FROM cao_salario
WHERE e.co_usuario = cao_salario.co_usuario
AND cao_salario.dt_inicio <= '2008-04-31'
)
AND e.dt_alteracao
IN (

SELECT MAX( cao_salario.dt_alteracao )
FROM cao_salario
WHERE e.co_usuario = cao_salario.co_usuario
AND date_format( cao_salario.dt_alteracao, '%Y%m%d' ) <=20080422
)
AND c.co_part_funcionario
IN (

SELECT MAX( co_part_funcionario )
FROM cao_participacao_funcionario
WHERE co_usuario = a.co_usuario
AND date_format( dt_referencia, '%Y%m%d' ) <20080422
)
ORDER BY date_format( a.dt_admissao_empresa, '%d' ) , c.co_escritorio, a.no_usuario

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.