현재 량을 쉽게 구할수 있는 방법좀.. 0 9 1,474

by 시리님이시네 [2012.08.13 11:08:06]


aaaq.jpg (36,148Bytes)


출고량 옆에 현재 수량이 나와야 합니다..

일별로 나와야 하구요...

입고량(전체) - 출고량(전체)이 되어야 합니다..
by 오케클릭 [2012.08.13 11:28:20]

음...머 은행계좌 남은 금액처럼 하는거 맞죠?
 
select 날짜
 , 입고량
 , 출고량
 , sum(입고량-출고량) over (order by 날짜) as 현재수량 from t
order by 날짜

by 시리님이시네 [2012.08.13 14:00:21]

오케클릭님 덕분에 해결은 했습니다 근데 어떻게 저런 결과 값이 나왔는지가 이해가 잘 안되네요..ㅠㅠ

by 부쉬맨 [2012.08.13 14:08:36]
저쿼리가 조금어렵다면

select 날짜
 , 입고량
 , 출고량
 , sum(입고량-출고량) 현재수량 from t
order by 날짜 이렇게도가능할텐데 이건이해되시나요???

by 부쉬맨 [2012.08.13 14:12:14]
저쿼리가 조금어렵다면

select 날짜
 , 입고량
 , 출고량
 , sum(입고량-출고량) 현재수량 from t
order by 날짜 이렇게도가능할텐데 이건이해되시나요???

by 마농 [2012.08.13 14:20:32]

부쉬맨~ 그건 아니지~ 더 헷갈리겠다...


by 시리님이시네 [2012.08.13 14:48:53]

두번째 쿼리시 결과 값이 다르게 나옵니다..
일단 group 를 날짜 별로 걸면...
첫번째 over()쓴 결과와는 다른 결값이 나오네요

by 오케클릭 [2012.08.13 15:25:21]

현재수량은 누적을 구하는 건데요 sum(x) over (order by x를 누적시킬때 순서) 이렇게 되는거에요~
쿼리의 마지막 order by 날짜  아실테고...
즉 가상값 (x값은 그 row의 입고량-출고량) 입니다.
그래서 가상값으로
현재수량은
100.0.44
2785.558
-461.61
-68.46
-472.06
....
이런 값이 되는데... sum 이 되는 순서를 order by 날짜를 하였으니... 그값이 순서대로 오른쪽에 날자별로 계속 row를 누적되서 표현되는거랍니다.

결론 : 정렬되어 있는 위에 가상값을 순서대로 row가 나올때마다 누적시키는겁니다.

아...설명하는게...답드린것보다 더 어렵네요..


by 시리님이시네 [2012.08.13 16:12:52]
 
날짜 입고량 출고량 재고량 A  B
1 125.044 25 100.044 125.044 - 25 100.044
2 2994.098 208.54 2885.602 3119.142 - 233.54 278.588
3 0 461.61 2423.602 3119.142-695.18 -461
4 0 68.46 2355.532 3119.142-763.64 -68.46
5 0 0 2355.532 3119.142-763.64 0

동작방식이 A 가 아니고 B처럼 날짜 별로 Row내려 가면서 SUM 한 결과를 보여준다는 말이죠??
머리가 나빠서 인지 여러번 읽고 나서야 이해가 가네요 ...

바쁘신데 설명 글 감사 합니다....

by 오케클릭 [2012.08.13 19:31:43]

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