Ako urobiť dotaz z tabuľky, ktorá sa počíta, koľko dní je SKU bez zásob

0

Otázka

Mám MySQL databázu a v tabuľke nazýva stock_log s týmito údajmi:

sku dátum množstvo zásob
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

Takže, potrebujem, aby sa dotaz, ktorý počíta, koľko dní v SKU je bez zásob na dnes (2021-11-23), len ak je dnes bez zásob, zoskupené podľa SKU. Tiež musí počítať dni bez zásob od posledného dňa, keď nemá žiadne zásoby (pretože SKU mohol zásob 3 po sebe nasledujúcich dní, potom znova 0, potom znova ho má skladom a potom znova 0).

Tak dotaz by sa uvádza:

sku dni bez zásob
111 0
123 2

POZNÁMKY:

  • SKU 111: 0 dní bez zásob zo súčasnosti. 123
  • SKU 123: 2 dni bez zásob z 2021-11-21 (posledný deň bez zásob) na dnes.
  • SKU 146: nezobrazovať v tejto výsledok, pretože dnes má zásob znova od dnes.

Dúfam, že vysvetliť to dobre.

Vďaka za vašu pomoc! :)

mysql select sql subquery
2021-11-23 20:11:03
2

Najlepšiu odpoveď

1

Môžete vyriešiť problém pomocou ďalšom dotazu:

select
    sku, 
    DATEDIFF( -- date diff in days between
        CURRENT_DATE,  -- current date
        MAX(if(quantity > 0, `date`, '')) -- last date with stock
    ) days_without_stock
from sku
group by sku
having days_without_stock > 0;

MySQL skupiny husle

2021-11-23 21:19:34

Ďakujem vám veľmi pekne! Funguje to perfektne! :)
Nacho Sarmiento
0

Myslím, že je to skutočný g, čo robiť, ak máte sql otázku vybudovať sql husle schémy pre všetky potenciálne answerers.

Každopádne, niečo ako:

select 
a.sku,
datediff(current_date, date_last_stock) - 1 as days_wo_stock
from stock a
left join (
  select 
  sku, 
  max(date) date_last_stock
  
  from stock 
  
  where qty > 0
  
  group by 
  sku
 ) b on a.sku = b.sku

where a.date = current_date
and a.qty = 0

Pozrite si tento husle. Funguje na MySQL 5.6

2021-11-23 20:50:08

Vďaka môj priateľ, nabudúce si budem robiť svoju svedčia o dotazu. Na zdravie!
Nacho Sarmiento

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................