작성한 Query
select a.name_code , -- (최종자료 출력)
a.inout_day ,
a.slip_no,
a.n_remark,
a.dr_amt,
a.cr_amt,
sum(b.dr_amt - b.cr_amt) as jan_amt,
a.n_id
from #res4 a, #res4 b
where a.inout_day >=b.inout_day
and a.n_id=b.n_id
group by a.name_code, a.inout_day, a.slip_no, a.n_remark, a.dr_amt, a.cr_amt, a.n_id
order by a.n_id
표시된 데이터 값
업체No | 거래일자 | 전표No | 거래내역 | 발생액 | 회수액 | 잔 액 |
1002 | <<전 기 이 월>> | 10,000 | 0 | 10,000 | ||
1002 | 20140901 | 1 | 8월말 잔액 | 55,000 | 0 | 65,000 |
1002 | 20140906 | 1 | 0 | 20,000 | 45,000 | |
1002 | 20140914 | 1 | 고객초대권 | 120,000 | 0 | 165,000 |
1002 | 20140919 | 1 | 0 | 10,000 | 155,000 | |
1002 | 20140900 | <<월 계>> | 175,000 | 30,000 | 145,000 | |
1002 | 20140900 | <<누 계>> | 185,000 | 30,000 | 155,000 |
원하는 데이터 값
업체No | 거래일자 | 전표No | 거래내역 | 발생액 | 회수액 | 잔 액 |
1002 | <<전 기 이 월>> | 10,000 | 0 | 10,000 | ||
1002 | 20140901 | 1 | 8월말 잔액 | 55,000 | 0 | 65,000 |
1002 | 20140906 | 1 | 0 | 20,000 | 45,000 | |
1002 | 20140914 | 1 | 고객초대권 | 120,000 | 0 | 165,000 |
1002 | 20140919 | 1 | 0 | 10,000 | 155,000 | |
1002 | 20140900 | <<월 계>> | 175,000 | 30,000 | ||
1002 | 20140900 | <<누 계>> | 185,000 | 30,000 |
Comment 5
-
건우아빠
2014.10.16 09:21
-
슈토파이터
2014.10.16 10:40
아 제가 깜박 했네요
n_id 값을 표기 안했내요
<< 전기이월>> 00000000
세부내역은 해당월에 +01 값 20140901
<<월계>> 해당월에 +02 값 20140902
<<누계>> 해당월에 +03 값 20140903
입니다
이러면 보여지는 값은 01 값만 하면 되는데
아니면 where 절에 a.slip_no <> '' 했더니 월계, 누계 값은 아예 나오지도 않더라구요
select a.name_code , -- (최종자료 출력)
a.inout_day ,
a.slip_no,
a.n_remark,
a.dr_amt,
a.cr_amt,
sum(b.dr_amt - b.cr_amt) as jan_amt,
a.n_id
from #res4 a, #res4 b
where a.inout_day >=b.inout_day
and a.n_id=b.n_id
and a.slip_no <>''
group by a.name_code, a.inout_day, a.slip_no, a.n_remark, a.dr_amt, a.cr_amt, a.n_idorder by a.n_id
-
슈토파이터
2014.10.16 18:27
주신 자료로 query를 작성 하였습니다.
select a.name_code , -- (최종자료 출력)
a.inout_day ,
a.slip_no,
a.n_remark,
a.dr_amt,
a.cr_amt,
(case when right(a.n_id, 2)='00' or right(a.n_id, 2)='01' then sum(b.dr_amt - b.cr_amt) end) as jan_amt,
a.n_id
from #res4 a, #res4 bwhere a.inout_day >=b.inout_day
and a.n_id=b.n_id
group by a.name_code, a.inout_day, a.slip_no, a.n_remark, a.dr_amt, a.cr_amt, a.n_idorder by a.n_id
아래처럼 나오는데 정말 모르겠습니다
실행결과 name_code inout_day slip_no n_remark dr_amt cr_amt jan_amt n_id 1022 <전기이월> 10000 0 10000 00000000 1022 20140901 1 8월말 잔액 75000 0 75000 20140901 1022 20140906 1 회수 0 24000 51000 20140901 1022 20140912 1 NULL 0 27000 24000 20140901 1022 20140913 1 NULL 0 18000 6000 20140901 1022 20140919 1 NULL 0 36000 -30000 20140901 1022 201409 <월 계> 75000 105000 NULL 20140902 1022 201409 <누 계> 85000 105000 NULL 20140903 1022 20141003 1 NULL 0 43500 -43500 20141001 1022 20141010 1 NULL 0 16000 -59500 20141001 1022 201410 <월 계> 0 59500 NULL 20141002 1022 201410 <누 계> 85000 164500 NULL 20141003 정상결과 name_code inout_day slip_no n_remark dr_amt cr_amt jan_amt n_id 1022 <전기이월> 10000 0 10000 00000000 1022 20140901 1 8월말 잔액 75000 0 75000 20140901 1022 20140906 1 회수 0 24000 51000 20140901 1022 20140912 1 NULL 0 27000 24000 20140901 1022 20140913 1 NULL 0 18000 6000 20140901 1022 20140919 1 NULL 0 36000 -30000 20140901 1022 201409 <월 계> 75000 105000 NULL 20140902 1022 201409 <누 계> 85000 105000 NULL 20140903 1022 20141003 1 NULL 0 43500 -73500 20141001 1022 20141010 1 NULL 0 16000 -89500 20141001 1022 201410 <월 계> 0 59500 NULL 20141002 1022 201410 <누 계> 85000 164500 NULL 20141003 -
건우아빠
2014.10.16 20:10
select *
, (case when right(ra.n_id, 2)='00' or right(ra.n_id, 2)='01' then ra.jan_amt end) as new_jan_amt,
from (
select a.name_code ,
a.inout_day ,
a.slip_no,
a.n_remark,
a.dr_amt,
a.cr_amt,
sum(b.dr_amt - b.cr_amt) jan_amt,
a.n_id
from #res4 a, #res4 bwhere a.inout_day >=b.inout_day
and a.n_id=b.n_id
group by a.name_code, a.inout_day, a.slip_no, a.n_remark, a.dr_amt, a.cr_amt, a.n_id ) raorder by ra.n_id ,ra.inout_day
-
슈토파이터
2014.10.17 09:57
감사 합니다...!
잔액 값을 월계와 누계에서 안보여 주겠다는것이라면
a.n_id 일듯 한데 이게 0이 아닌 값만 안보이게 하시면 되지 않을까요..
(case when a.n_id = 0 then 잔 액 end ) 잔 액