#sql #sql-server
Вопрос:
У меня есть следующая таблица:
и мне было интересно, есть ли SQL-запрос, который дал бы мне начало и конец календарной недели (CW), где значение больше 0. Таким образом, в случае приведенной выше таблицы результат, как показано ниже:
Заранее спасибо!
Ответ №1:
Вы можете назначить группу, подсчитав количество нулей, а затем суммировав:
select article_nr, min(year), max(year)
from (select t.*,
sum(case when amount = 0 then 1 else 0 end) over (partition by article_nr order by year) as grp
from t
) t
where amount > 0
group by article_nr, grp;
Ответ №2:
select Atricle_Nr, min(Yearamp;CW) as 'Begin(Yearamp;CW)',max(Yearamp;CW) as 'End(Yearamp;CW)'
from table where Amount>0 group by Atricle_Nr;