Buscar todos os registros do ultimo dia útil ou ultimo dia lançado numa tabela

Banco de Dados

25/01/2017

Tenho o código abaixo, o qual preciso inserir uma variante que de suma importância para a query.

O código abaixo trás registros do ultimo DTCONTABIL lançado no banco,

Porem para alguns casos, tenho que o ultimo registro é DTGESTORCATEGORIA

Ou seja para centros que o ultima aprovação é o Contabil, e tenho centros que o contabil aprova e depois vai para o gestor de categorias aprovar..

Para os centros que o ultimo que aprova é o contábil, a data do gestor categoria fica como '1905-02-01'

Se contábil for a ultima aprovação, trazer a data de contábil, senão trazer a data de aprovação de gestor de categorias que sempre serão igual ou maior que contábil e maior que '1905-02-01'

O que precisava era de um Case ou outro variante que seguisse mais ou menos a regra abaixo ou outro que me atenda.

CASE S.DTGESTORCATEGORIA

WHEN '1905-02-01'

THEN S.DTCONTABIL

ELSE DTGESTORCATEGORIA

END AS DATA_FINALIZADO

Porem não consigo adaptar esta no código na query abaixo.

set @Data_consulta=
(SELECT top (1) Cast(DTCONTABIL as date)
from SOLICITACAO
where DTCONTABIL < @Hoje
-- and STATUS = 10 ??
order by DTCONTABIL desc);

--
SELECT S.SOL_COD, S.DTCONTABIL,
case when S.CODMAT = 0 then 'CRIAÇÃO' else 'AMPLIAÇÃO' end as [TIPO_SOLICITAÇÃO],
S.CODMATGERADO, SC.CENTRO
from SOLICITACAO as S
inner join SOL_CENTROS as SC on S.SOL_COD = SC.SOL_COD
where Cast(S.DTCONTABIL as date) = @Data_consulta
and S.STATUS = 10;

No aguardo e duvidas estou a disposição..
Osman Almeida

Osman Almeida

Curtidas 0

Respostas

Paulo Hendrix

Paulo Hendrix

25/01/2017

me diga algo, que programação vc esta usando para Shear estes dados em SQL. e ela e Object ou apenas Sequencial...
GOSTEI 0
Osman Almeida

Osman Almeida

25/01/2017

Apenas Query SQl, uso query em consultas excel.. acredito que seja sequencial.
GOSTEI 0
Paulo Hendrix

Paulo Hendrix

25/01/2017

olha, pelo que entendi. você quer resgatar as contabil aprovadas por "gestor de categorias";
para retornar de novo a centros; eles precisam saber se Contabil aprovou etc.. então volta para tela com aprovado. para dar continuidade no processo, certo ?
GOSTEI 0
Osman Almeida

Osman Almeida

25/01/2017

Tenho processo que são aprovados por contabil e aprovados por gestor categorias, e tenho processo que são somente por contabil sem a necessidade de aprovação de gestor categorias..

Os que são aprovados somente por contabil, a data padrão DTGESTORCATEGORIA = '1905-02-01' .

Nestes casos precisaria filtrar por DTGESTORCATEGORIA quando a DTGESTORCATEGORIA >'1905-02-01'
Caso DTGESTORCATEGORIA = '1905-02-01' filtrar por Dtcontabil.

Mas sempre buscando nesta query a ultima data de (dia de registro entre estas duas condições.. DTGESTORCATEGORIA ou Dtcontabil.

Estou a disposição para sanar qquers dúvidas..
GOSTEI 0
POSTAR