계산

2013-03-28 3 views
0

뉴 CR 및 사용 CR의 V10과 균형부터 제 레코드 예를 들어 SQL 서버 2000계산

는 계산 I 같이 SP에서 산출 한 입력 날짜에서 합 (필드) 인

BegDateSum

그러나 그룹에서 기록의 나머지 부분에 대한 계산이 이전되어야한다 (밸런스) + IN + OUT

샘플이 제공되었습니다

Date  Doc Descrip IN OUT Balance 
Group Header-------- Beginning Balance-------------- 50 <---- sum(field) from my inputdate 
3/2/2012 A   -1 0 49 <-- (50+(-1)+0) 
4/2/2012 B   -2 0 47 <-- (49+(-2)+0) 
5/2/2012 C   0 3 50 
6/2/2012 D   -2 3 51 

어떻게에게 교류를 할 이걸 숨기고 있니?

누계를 사용할 것인지 여부를 잘 모르겠습니다.

답변

0

누적 합계 필드는이 경우 작동하지 않으며, 하나의 필드를 합산 (또는 계산 또는 평균 등)하여 자동으로 소계를 제공하도록 설계되었습니다. 그러나 필요한 결과를 얻을 수있는 몇 가지 사용자 지정 함수를 사용할 수 있습니다. 초기 값 50이 정적 값이라고 가정하면 변수를 해당 값으로 설정 한 다음 계속 진행하면서 IN 값과 OUT 값을 추가합니다 (그 결과를 인쇄).

우선, 같은 식으로보고 헤더의 값을 초기화는 :

WhilePrintingRecords; 
Global NumberVar Balance; 
Balance := 50; 
""; //print nothing on the screen 

그리고, 바에서 계산하고 새로운 균형을 표시하는 수식은 데이터이다 :

WhilePrintingRecords; 
Global NumberVar Balance; 
Balance := Balance + {tableName.IN} + {tableName.OUT}; 

마지막 줄은 새 값을 계산하고 수식의 결과가 무엇인지 알려줍니다.

"50"을 어떻게 든 계산하면 새 잔액을 계산하는 수식보다 먼저 계산해야합니다. 처음 읽은 레코드를 기반으로하는 경우 If PreviousIsNull({tableName.Balance}) Then ...을 포함하는 수식을 사용하는 것이 좋습니다. 보통 데이터 세트의 첫 번째 레코드를 나타내는 좋은 지표입니다 (해당 필드가 null 일 수있는 경우는 제외).