Я понимаю, что вы пытаетесь сравнить количество каждого данного продукта в течение последовательных недель.В SQL вы можете добиться этого, присоединив таблицу к себе, используя предложение LEFT JOIN
(тот же продукт и на следующей неделе).Если совпадения отсутствуют (на следующей неделе нет для данного продукта), предложение join даст значения NULL.Исходя из этого, вы можете затем реализовать логику сравнения.
Вы пометили свой вопрос как oracle
и mysql
, я не знаю, действительно ли это нарочно, но это решение должно работать для обоих:
select
t1.week,
t1.prod,
t1.qty,
case
when t2.week is null or t1.qty = t2.qty then 'N'
else 'Y'
end week_over_week_change,
case
when t2.week is null or t1.qty = t2.qty then 'NA'
else t1.qty - t2.qty
end week_over_week_change_qty
from table t1
left join table t2 on t2.prod = t2.prod and t2.week = t1.week + 1