Tiago_BB 0 Denunciar post Postado Novembro 4, 2009 ola pessoal. Tenho o seguinte script: SELECT * FROM (SELECT CASE WHEN (FERIADO_TAB = 1 OR FERIADO_TAB = 2) THEN (SELECT * FROM(SELECT A.DATA_TAB FROM TAB A, TAB B WHERE A.DATA_TAB < B.DATA_TAB AND A.FERIADO_TAB = 0 AND B.DIA_SEMANA_TAB = 6 AND ROWNUM = 1 ORDER BY A.DATA_TAB DESC)) ELSE DATA_TAB END FROM TAB B WHERE CENTRO_CUSTO_TAB = 30400 AND DATA_TAB < '20091228' AND DIA_SEMANA_TAB = 6 AND ROWNUM = 1 ORDER BY DATA_TAB DESC) WHERE ROWNUM = 1 Esse script é referente a uma regra. Pra começar; o campo FERIADO_TAB pode ser: 0 - dia util 1 e 2 - feriado Beleza... e o campo dia_semana_tab pode ser: 1-segunda 2- terça 3- quarta 4-quinta 5-sexta 6-sábado 7-domingo O que acontece? Caso meu campo DIA_SEMANA_TAB no script seja 6 (sábado)... Vamos supor que eu entre com o dia 27/12/2009... deverá retornar o sábado anterior a essa data, caso esse sábado seja feriado, deverá retorna o dia útil anterior a ele, ou seja, vamos supor que dia 26/12/09 seja feriado... deverá retornar dia 25/12/05. Até ai ta funcionando... porém... dia 25 é feriado.. entaum preciso que me retorne o dia util anterior.. ou seja.. dia 24/12/2009. Ta devolvendo dia 25/12/09.. mesmo sendo feriado!! Espero ter sido claro.. Porém, o script acima esta retornando 24/12/2010... e quero que retorne 24/12/2009. Espero ter sido claro!! Atte. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 4, 2009 Veja se isto te ajuda. Compartilhar este post Link para o post Compartilhar em outros sites