Eu tenho um banco de dados MySQL com uma tabela chamada stock_log com esses dados:
sku | data | quantidade de ações |
---|---|---|
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 |
Então, eu preciso fazer uma consulta que conta quantos dias de uma SKU está sem estoque para hoje (2021-11-23), apenas se hoje está sem estoque, agrupados por SKU. Também deve contar os dias sem estoque a partir da última data de quando ele não tem estoque (porque um SKU poderia ter estoque 3 dias consecutivos, em seguida, novamente 0, então, novamente, ele tem o estoque e, em seguida, novamente 0).
Assim, a consulta deve mostra:
sku | dias sem estoque |
---|---|
111 | 0 |
123 | 2 |
NOTAS:
- SKU 111: 0 dias sem estoque a partir de hoje. 123
- SKU 123: 2 dias sem estoque de 2021-11-21 (a última data sem estoque) para hoje.
- SKU 146: não mostrar este resultado porque hoje ele tem estoque novamente a partir de hoje.
Espero que explicar bem.
Obrigado por sua ajuda! :)