문의 0 3 2,151

by 송현욱 [SQL Query] [2023.09.06 18:27:59]


 

 

데이타
날짜        이름      입금액
1일          A             1
2일          A             3
2일          B              2
3일          A              5
.
.
.


출력
              A누적     A입금      B누적      B입금
1일

by pajama [2023.09.06 21:28:55]

안녕하세요. 아래같이 해봤습니다.

with t (dt, nm, dep) as (
select '1일', 'A', 1 from dual union all
select '2일', 'A', 3 from dual union all
select '2일', 'B', 2 from dual union all
select '3일', 'A', 5 from dual
)
select dt, 
       sum(a_dep) over( order by dt) a_dep_acc, 
       a_dep,
       sum(b_dep) over( order by dt) b_dep_acc,
       b_dep
from (select dt, 
             sum(case when nm='A' then dep else 0 end) a_dep, 
             sum(case when nm='B' then dep else 0 end) b_dep
        from t
       group by dt) t1

 


by 마농 [2023.09.07 00:07:20]
SELECT dt
     , SUM(SUM(DECODE(nm, 'A', dep))) OVER(ORDER BY dt) a_dep_acc
     ,     SUM(DECODE(nm, 'A', dep))  a_dep
     , SUM(SUM(DECODE(nm, 'B', dep))) OVER(ORDER BY dt) b_dep_acc
     ,     SUM(DECODE(nm, 'B', dep))  b_dep
  FROM t
 GROUP BY dt
 ORDER BY dt
;

 


by pajama [2023.09.07 11:43:54]

역시 한번에 하는게 깔끔하군요~ 참고하겠습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입