Warunek Case w having ?

0

Witam
Mam problem i nie moge wykombinować
Potrzebuje z querry dostac taki wynik:
W przypadku jak w danym tygodniu wystepuje liczba -100 to dla calego tygodnia w group by ma byc -100
W przeciwnym przypadku ma liczyc sume z calego tygodnia.

Przykladowo taki chcialbym wynik
Week Sum
1 -100
3 -100
4 245
5 -100
6 -100
7 -100
8 -100
....
23 425

ponizej querry i dane
http://sqlfiddle.com/#!18/eb0aec/4

1
select  [week], case when min(case when w>r then 1 else 0 end)=1 then 100*round(exp(sum(log([int]))),2) else -100 end as wynik 
from test
where w is not null 
group by [week]
0

Bede mial jeszcze jedno pytanie do tego querry
Jak je przerobic zeby podal mi max wartosci dla calego roku ( sumy poszczegolnych tygodni) operujac na wartosci int
Pzykladowo jak puszcze powyzsze querry to dostaje duzo -100

select [week], case when min(case when w>r then 1 else 0 end)=1 then 100*sum([int]) else -100 end as wynik from test where w is not null group by [week]

ale gdyby zawezic INT do

select [week], case when min(case when w>r then 1 else 0 end)=1 then 100*sum([int]) else -100 end as wynik from test where w is not null  and int BETWEEN 1.3 AND 2.3 group by [week]

to juz pierwszy tydzien wskakuje na plus

Jak napisac querry zeby liczyl mi max dla calego roku zmieniajac przedzial INT.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0