idx | num |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
이런식의 테이블데이터가 있을경우
select 하여
idx | num | sumnum |
1 | 1 | 1 |
2 | 2 | 3 |
3 | 3 | 6 |
4 | 4 | 10 |
이런식으로 누적 합 금액이 나오도록... 검색 하는 법... ?
Comment 6
-
꼬셔죠
2015.02.04 09:10
-
깨비꼬비
2015.02.04 10:55
ms-sql 2008 이라서 안되네요..
-
건우아빠
2015.02.04 15:04
댓글로 누적이라고 검색하시면 원하시는 것을 충분히 만드실수 있으실듯 합니다.
-
철스
2015.02.04 18:10
; WITH AAA AS (
SELECT 1 AS IDX, 1 AS NUM UNION ALL
SELECT 2, 2 UNION ALL
SELECT 3, 3 UNION ALL
SELECT 4, 4 UNION ALL
SELECT 5, 5
)SELECT
A.IDX, A.NUM, SUM(B.NUM)
FROM AAA AS A
LEFT JOIN AAA AS B ON A.IDX >= B.IDX
GROUP BY A.IDX, A.NUM -
처리짱
2015.02.04 19:07
2008 이하에서 저도 누적 합계를 해야할일이 있어서 해봤는데
데이터 양이 많아 지니 < > 이런식의 조인은 결과값이 안나오더라고요.
커서를 쓰시는게 제일 빠릅니다.
아래의 링크에서 정리를 해 두었더군요.
-
hexcat
2015.02.05 09:31
2008 이면 아래의 방법도 참고해 보세요
DECLARE @TABLE TABLE(
IDX INT
,NUM INT
)
INSERT INTO @TABLE
VALUES (1, 1), (2, 2), (3, 3), (4, 4)
;WITH SRC AS (
-- 시퀀스 부여
SELECT ROW_NUMBER() OVER(ORDER BY NUM) AS SEQ
,IDX
,NUM
FROM @TABLE
)
,SUMMARY AS (
-- 누적 합계
SELECT SEQ
,IDX
,NUM
,NUM AS SUMNUM
FROM SRC
WHERE IDX = 1
UNION ALL
SELECT T.SEQ
,T.IDX
,T.NUM
,S.SUMNUM + T.NUM
FROM SUMMARY AS S
INNER JOIN
SRC AS T
ON S.SEQ + 1 = T.SEQ
)
SELECT IDX, NUM, SUMNUM
FROM SUMMARY
select
idx
, num
, sum_num = sum(num) over(order by idx)
from 테이블