1 2 3 4 5 6 7 8 9 10 11 12 13 | idx|store| stock_date| stock_close 1 70 2023-01-18 1 2 70 2023-01-19 1 38 30 2023-01-26 1 39 70 2023-01-26 0 40 30 2023-01-30 0 41 30 2023-01-30 0 42 30 2023-01-30 0 43 30 2023-01-30 0 44 30 2023-01-30 0 45 30 2023-01-30 0 46 80 2023-01-20 1 47 80 2023-01-30 1 |
에서 오늘을 기점으로 가장 마지막 close 가 1 인것을 기준으로 오늘 날자 또는 지정한 날 사이에서 close가 0것들은 모두
close 가 1인 것은 마지막으로 등록된 값만 가지고 오는 쿼리를 짜려고 하는데
SELECT *
from stockTable ds1
left join(
select max(stock_date) stock_date ,store, idx from stockTable ds where ds.stock_close =1 and ds.stock_date <= CURRENT_DATE() group by store
) ms on ds1.idx =ms.idx and ds1.stock_date<= CURRENT_DATE() and ms.stock_date <=ds1.stock_date
으로 했더니 정확한 값이 나오지 않는데 어디 부분을 수정해야 할까요?
결과 값은 아래처럼 store 에서 close값이 1인건 마지막 것들만 나오도록 하는 쿼리 입니다 도와주세요 ㅜ,ㅜ
2 70 2023-01-19 1
38 30 2023-01-26 1
39 70 2023-01-26 0
40 30 2023-01-30 0
41 30 2023-01-30 0
42 30 2023-01-30 0
43 30 2023-01-30 0
4 30 2023-01-30 0
45 30 2023-01-30 0
47 80 2023-01-30 1