วิธีที่จะทำให้การสืบค้นมาจากโต๊ะนั่นนั้บว่าอีกกี่วันเป็น 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 คำถามที่จะสร้างภาษา sql น fiddle ชุดรูปแบบสำหรับว่ามีอะไรที่เป็น answerers.

ยังไงก็ตาม,บางอย่างเหมือน:

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ý
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่