Array
(
)

Uma dúvida ao montar uma view

Pjava
   - 27 fev 2011

Uso Sql Server 2008. Precisava montar uma view, que me trouxesse informações, baseada na seguinte regra:

Regra de negócio:
Se o ano for menor que 1940, então 100 - Legibilidade deve ser igual ou maior que 82.
Se o ano for entre 1941 e 1950, então 100 - Legibilidade deve ser igual ou maior que 85.
Se o ano for entre 1951 e 1960, então 100 - Legibilidade deve ser igual ou maior que 87.

Minha dificultade é em montar isso, pois eu tenho um campo chamado Legibilidade(Decimal), e nesses casos deve manter isso. Não conseguir fazer com um case, tipo assim:

select img.data,img.edicao,
Case when year(data) <= 1940 then
....
Aqui já não sei. pois tentei uma subquery e não funcionou
end map
from.....

Pensei em fazer um blco anônimo, com cursor e etc, mas não sei se funcionaria um em Relatório dentro do delphi. Tô com dúvidas de montar isso.  Eu não preciso mostrar no retório as informações de que se ano <...., isso não precisa, eu tenho apenas que validar isso para imprimir o relatório.

O 100 - Legibilidade, vai me dar o percentual de legibilidade. Esse numero aí é pequeno, sempre entre 3 ~ 15, nunca menos ou mais, dependendo do ano da mídia.
Bem é mais ou menos isso. QQuer coisa, eu posto m ais informações.

Emerson
   - 28 fev 2011

select * from tabela
where
 (year(data) <= 1940 and (100 - legibilidade) >= 82)
 or (year(data) between 1941 and 1950 and (100 - legibilidade) >= 85)
 or (year(data) between 1951 and 1960 and (100 - legibilidade) >= 87)