कैसे बनाने के लिए एक क्वेरी तालिका में से गिना जाता है कि कितने दिनों एक SKU के बिना शेयर

0

सवाल

मैं एक 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

तो, मैं की जरूरत है एक क्वेरी बनाने के लिए मायने रखता है कि कितने दिनों एक SKU के बिना शेयर करने के लिए आज (2021-11-23), केवल अगर आज बिना शेयर के आधार पर समूहीकृत, SKU. भी यह गिनती के बिना दिन से शेयर की अंतिम तिथि जब यह कोई शेयर (क्योंकि एक SKU सकता है शेयर लगातार 3 दिनों के लिए, तो फिर 0 है, तो फिर यह स्टॉक और फिर तो 0).

तो क्वेरी करना चाहिए पता चलता है:

sku के बिना दिन शेयर
111 0
123 2

नोट्स:

  • SKU 111: 0 दिनों के बिना स्टॉक से आज. 123
  • SKU 123: 2 दिनों के बिना स्टॉक से 2021-11-21 (अंतिम तिथि के बिना शेयर) के लिए आज.
  • SKU 146: दिखाने के लिए नहीं में यह परिणाम है क्योंकि आज यह शेयर फिर से आज.

मुझे आशा है कि यह समझाने के लिए अच्छी तरह से.

आपकी मदद के लिए धन्यवाद! :)

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

सबसे अच्छा जवाब

1

आप समस्या हल कर सकते हैं का उपयोग कर अगले क्वेरी:

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 के समूह द्वारा बेला

2021-11-23 21:19:34

बहुत बहुत धन्यवाद! यह काम करता है पूरी तरह से! :)
Nacho Sarmiento
0

मुझे लगता है कि यह एक वास्तविक जी बात करने के लिए यदि आप एक एसक्यूएल सवाल का निर्माण करने के लिए sql बेला स्कीमा के लिए किसी भी संभावित उत्तर देने वाला.

वैसे भी, कुछ पसंद है:

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

देखें इस बेला. पर काम करता है MySQL 5.6

2021-11-23 20:50:08

धन्यवाद मेरे दोस्त, अगली बार मैं करूँगा अपने सुझाव के बारे में क्वेरी की. चीयर्स!
Nacho Sarmiento

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

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

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में