*제가 도스용 프로그램을 윈도우로 옮기는 작업을 하는데,
문제가 생겼습니다.
아래와 같이 매출전표가 있을 때 일괄적으로 잔액을 정리를 해야 되는데
아래와 같이 코딩을 하면 한 레코드씩 업데이트 될 줄 알았는데,
고객NO 가 '2'인 모든 자료가 같은 값(2000)으로 업데이트 되었습니다.
[?]제 생각에 각 레코드별로 구분지을 수 있는 일련번호가 있음 쉽게 가능하겠는데,
[?]현 DB를 수정하지 않고 '정상적인결과'를 얻고 싶은데,
어떻게 해야 될지 도무지 알 수가 없네요.
-----------------------------------------------------
while not qrSel.eof do begin
x := qrsel('판매가')
y := qrsel('입금')
case 구분 of
1: tmp := tmp + x;
2: tmp := tmp - y;
end
update set 잔액 = tmp where CustNo = 2;
qrSel.next;
end;
-----------------------------------------------------
위와 같이 코딩 했을 때 발생 결과
---------------------------------------------------
고객NO |구분| 상품NO | 판매가 | 입금 | 잔액 |
---------------------------------------------------
2 | 1 | a1 | 1000 | | 2000 |
2 | 1 | b2 | 3000 | | 2000 |
2 | 1 | a3 | 4000 | | 2000 |
2 | 2 | 입금 | |8000| 2000 |
정상적인 결과
------------------------------------------------------
고객NO |구분| 상품NO | 판매가 | 입금 | 잔액 |
------------------------------------------------------
2 | 1 | a1 | 1000 | | 1000 |
2 | 1 | b2 | 3000 | | 4000 |
2 | 1 | a3 | 4000 | | 8000 |
2 | 2 | 입금 | |8000| 2000 |
잔액 필드를 별도로 마련해서 작업하시는 건가요?
그럼 중간 날짜의 금액이 바뀌면 그 뒤 모든 자료의 잔액을 다시 계산하실??? -_-
상당히 이해가 안가는 프로세스 입니다..ㅡㅡ;
display 시점에서 직접 계산해주는 방법을 찾아보심이..^^
레포트라면 quick같은경우..sum() 함수를 이용하시면 되구요..
그냥 그리드라고 해도.. 변수하나 선언해서 집계내가면서..calc컬럼에 넣어주시고. display하시면 될듯...
그럼..