У меня есть база данных MySQL с таблицей под названием stock_log с этими данными:
sku | Дата | запас количества |
---|---|---|
111 | 2021-11-18 | 0 |
123 | 2021-11-18 | 0 |
146 | 2021-11-18 | 0 |
111 | 2021-11-19 | 5 |
123 | 2021-11-19 | 4 |
146 | 2021-11-19 | 0 |
111 | 2021-11-20 | 3 |
123 | 2021-11-20 | 4 |
146 | 2021-11-20 | 0 |
111 | 2021-11-21 | 3 |
123 | 2021-11-21 | 0 |
146 | 2021-11-21 | 0 |
111 | 2021-11-22 | 2 |
123 | 2021-11-22 | 0 |
146 | 2021-11-22 | 0 |
111 | 2021-11-23 | 0 |
123 | 2021-11-23 | 0 |
146 | 2021-11-23 | 2 |
Итак, мне нужно сделать запрос, который подсчитывает, сколько дней у артикула нет запасов на сегодняшний день (2021-11-23), только если сегодня нет запасов, сгруппированных по артикулам. Также он должен считать дни без запасов с последней даты, когда у него нет запасов (потому что артикул может иметь запасы 3 дня подряд, затем снова 0, затем снова у него есть запасы, а затем снова 0).
Таким образом, запрос должен показывать:
sku | дни без запасов |
---|---|
111 | 0 |
123 | 2 |
ПРИМЕЧАНИЯ:
- Артикул 111: 0 дней без запасов с сегодняшнего дня. 123
- Артикул 123: 2 дня без запасов с 2021-11-21 (последняя дата без запасов) по сегодняшний день.
- Артикул 146: Не показывайте этот результат, потому что сегодня у него снова есть запас с сегодняшнего дня.
Я надеюсь хорошо это объяснить.
Спасибо за вашу помощь! :)