Так что это немного сложно.
У нас есть "отчет" в системе ERP. Это как большой запрос из нескольких таблиц ... но, я думаю, это не так важно. У нас есть тысячи строк.
Это всего лишь пример:
Как мне найти «следующий номер флаера»? Таким образом, если элемент находится в флаере 2015 C и 2016 C, я хочу получить "Расширенный флаер".
Логика c здесь: если элемент находится в фактическом флаере +1 = это «Расширенный флаер».
2015C
: 20
фактический год, 15
- номер флаера. C
- это тип флаера.
Дата - с 2008 года по сегодняшний день. Поэтому я не могу сосчитать только значения (есть много предметов с большим количеством листовок).
Может быть, что-то с LAG/LEAD
?
Сейчас я использую этот запрос, но это не так Точно (самостоятельное соединение):
decode(null,
(select count(*)
from --my_actual_table g
where g.id = id
and g.place_of_delivery = place_of_delivery
and g.partner = partner
and g.date <= date and g.date >= date-22
group by g.id, g.place_of_delivery, g.partner
having count(*) > 1 ),
null,'Extended flyer')
Есть ли лучший способ сделать это?