Ola pessoal.
Estou com o seguinte problema.
Estou criando tipo uma regra no SQL… onde vamos supor… se alguem for me entregar algo de quinta a quarta.. deverei pagar na segunda anterior. Exemplo… tenho a seguinte semana: de 5 a 11 ( Quinta a quarta )… o dia de entrega que cair em um desses dias.. deverei pagar na segunda anterior, ou seja, dia 2 …
D S T Q Q S S
2 5 6 7
8 9 10 11
Qual o meu problema:
Fiz a seguinte Query:
SELECT TOP 1 DATA_CALENDARIO
FROM CALENDARIO
WHERE DATA_CALENDARIO < '20090218'
AND DIA_SEMANA_CALENDARIO = CASE
WHEN (SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 4 OR
(SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 5 OR
(SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 6 OR
(SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 7 OR
(SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 1 OR
(SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 2 OR
(SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 3
THEN 1 --JOGA PARA A SEGUNDA ANTERIOR
END
AND EXISTS (SELECT DATA_CALEND FROM CALEND WHERE DATA_CALEND = '20090218')
ORDER BY DATA_CALEND DESC
O meu problema é: Se eu entrar com uma data de 5 a 9.. tudo bem.. ele tras o dia 2.. porém.. se eu entrar com 10 ou 11 ... ele tras o dia 9... sendo que eu quero trazer o dia 2.
Como que eu poderiaq fazer???
Atenciosamente,
Tiago