Jak udělat dotaz z tabulky, která počítá, kolik dní je SKU, aniž skladem

0

Otázka

Mám MySQL databázi s tabulkou, tzv. stock_log s těmito údaji:

sku datum množství skladem
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, potřebuju udělat dotaz, který počítá, kolik dní v SKU je bez akcie dnes (2021-11-23), pouze pokud je dnes bez zásob, seskupeny podle SKU. Také musí počítat dny bez akcií od posledního data, kdy to má žádné legální (protože SKU mohli mít skladem 3 po sobě jdoucí dny, pak zase 0, pak zase, že to má skladem a pak zase 0).

Takže dotaz by měl zobrazuje:

sku dny bez zásob
111 0
123 2

POZNÁMKY:

  • SKU 111: 0 dní bez zásob z dnes. 123
  • SKU 123: 2 dny bez zásob z 2021-11-21 (poslední datum bez zásob) do dnes.
  • SKU 146: nezobrazovat v tento výsledek, protože dnes to má skladem opět od dnešního dne.

Doufám, že to vysvětlit dobře.

Díky za vaši pomoc! :)

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

Nejlepší odpověď

1

Můžete vyřešit problém pomocí následující dotaz:

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 group by housle

2021-11-23 21:19:34

Díky moc! Funguje to perfektně! :)
Nacho Sarmiento
0

Myslím, že je to skutečný g, co dělat, když máte sql dotaz pro sestavení sql housle schématu pro případné answerers.

Každopádně, něco jako:

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

Vidět housle. Funguje na MySQL 5.6

2021-11-23 20:50:08

Díky příteli, příště udělám vaše naznačují, o dotazu. Na zdraví!
Nacho Sarmiento

V jiných jazycích

Tato stránka je v jiných jazycích

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