2013-03-11 3 views
-2

MySQL에서 "Reports"라는 제목의 테이블이 있습니다.이 테이블에는 "Total_Total"이라는 칼럼이 있습니다.이 칼럼에는 매일 올라가고 결코 리셋되지 않는 총 누적 값이 있습니다. need는 "Flow_Total"열에 저장된 값을 받아 월로 나누고 매월 값이 얼마나 올라가는지 알려주는 쿼리입니다. 누계 중 매월 합계를 계산하기위한 SQL 쿼리

내가 데이터를보고 싶은 방법입니다

https://skydrive.live.com/redir?resid=BC22A6E2F92CE833!11843&authkey=!ACgipFLKDJTBlN8

월의 값은 그 달의 마지막 날에 기록됩니다. 내가 원하는 일의 요약은 Flow_Total에서 매월 변경된 금액을 뺀 다음 Monthly Total이라는 별개의 열에 표시합니다.

+1

[무엇을 시도해 봤습니까?] (http://whathaveyoutried.com/) – rationalboss

+0

최소한 샘플 데이터, 표 레이아웃 및 원하는 결과를 추가해야합니다. 매일 또는 매월 데이터가 시작 또는 종료됩니까? 이미지의 '총 흐름'열이 해당 월의 시작 또는 끝의 값입니까? 명확히하고, 시도한 것과 실패한 것을 알려주십시오. –

+0

나는 아직 아무것도 시도하지 않았고, 나는 지난 주에 웹을 검색해 왔으며 원거리에서 아무 것도 발견하지 못했다. 그리고 Total flow 열은 매월 말에 기록됩니다. – user2157980

답변

1

아마도 눈을 가장 즐겁게하는 SQL이 아니 겠지만, 이것은 당신이 원하는 것을 할 것입니다. 1 달 지연된 테이블 자체에 조인하고 그 차이를 계산합니다.

SELECT DATE_FORMAT(MAX(a.`DATE`), '%b-%y') `DATE`, 
     MAX(a.`FLOW_TOTAL`) `Flow Total`, 
     (MAX(a.`FLOW_TOTAL`) - MAX(b.`FLOW_TOTAL`)) `Monthly Total` 
FROM Reports a 
LEFT JOIN Reports b 
    ON YEAR(a.`DATE`) = YEAR(DATE_ADD(b.`DATE`, INTERVAL 1 MONTH)) AND 
    MONTH(a.`DATE`) = MONTH(DATE_ADD(b.`DATE`, INTERVAL 1 MONTH)) 
GROUP BY YEAR(a.`DATE`), MONTH(a.`DATE`) 
ORDER BY a.`DATE` DESC; 

An SQLfiddle for testing.

+0

감사합니다! 완벽하게 작동했습니다! – user2157980

관련 문제