Centos7/MySQL

GROUP BY 그룹별-월별 최신날짜의 데이터 가져오기

돌크리트 2020. 6. 29. 13:10
1
SELECT * FROM MaterialWeeklyOutputTable;
cs

[테이블 구조 설명]

mwSeq : 순번 / auto_increment

mwCode : 원재료 코드명

mwTime : 출고 날짜

mwAmount : 출고량

mwInventory : 남은 재고량

mwRemarks : 비고

 

구하고자 하는 것

월별로 그룹하여

1. 출고량의 합

2. 해당월의 마지막 날(최신)의 재고량

이다.

1
2
3
4
5
6
7
8
9
10
SELECT a.mwCode, a.mwTime, a.mwAmount, temp.mwInventory
FROM 
(
    SELECT mwCode, MAX(mwTime) AS mwTime, SUM(mwAmount) AS mwAmount
    FROM MaterialWeeklyOutputTable
    WHERE mwCode = '070' AND mwTime > '2016-01' 
    GROUP BY LEFT(mwTime, 7)
) a
INNER JOIN MaterialWeeklyOutputTable as temp 
ON temp.mwCode = a.mwCode AND temp.mwTime = a.mwTime
cs

같은 테이블을 INNER JOIN 하여 구하였다.

더 좋은 방법이 떠오르지 않느다....