rogeriojr 0 Denunciar post Postado Abril 22, 2008 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
giesta 29 Denunciar post Postado Abril 23, 2008 Em varios pedaços da consulta diz q as datas devem ser maiores que 04/2008 Compartilhar este post Link para o post Compartilhar em outros sites