하는 방법을 확인 쿼리 테이블에서는 얼마나 많은 일은 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

NOTES:

  • SKU111: 0 일이지 않고 주식에서 오늘입니다. 123
  • SKU123: 2 없는 일에서 주식 2021-11-21(마지막 날짜없이 주)를 오늘입니다.
  • SKU146: 에 표시되지 않는지 이 결과이기 때문에 오늘날 그것은 주식에서 다시 오늘입니다.

난 그것을 설명하는습니다.

당신의 도움을 주셔서 감사합니다! :)

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

나는 그것이 진짜 g 할 일이 있는 경우에는 sql 질문을 구축하는 sql 바이올린 스키마에 대한 모든 잠재적인 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

바이올린. 에서 작동합 MySQL5.6

2021-11-23 20:50:08

감사합니다 내 친구여,나는 당신의 제안에 대한 쿼리습니다. Cheers!
Nacho Sarmiento

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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