2014-05-19 3 views
0

이 질문에 제목을 쓰는 방법을 모르겠다. 간단하고 어리석은 논리가 정렬되어야하지만 필요한 부분을 설명 할 수 있음을 알고 있습니다. 나는 벽옥 보고서 스크립트에서 아래 식으로 계산되는 지금은이 값을 필요동적 변수 값 재스퍼 보고서

SELECT TOTAL, PARTIAL FROM PRICE WHERE TOTAL > 0 

아래 쿼리에서 수집 한 값을 기반으로 간단한 계산을 필요로하는 벽옥 보고서 스크립트 및 쿼리가

VAR CALC += TOTAL + (PARTIAL) //as partial can be a -ve or +ve value 

현재 변수의 값을 TOTAL으로 지정하고 사용하려고 할 때마다이를 수행 할 방법을 찾지 못했습니다. 쿼리를 사용하여 항상 값을 가져오고 계산할 때 필요합니다. 거기에 한 번만 다음에 계산을 수행합니다. 그 때문에 나는 calculation="First"을 사용하려고 시도했지만 그 또한 항상 첫 번째 가치를 부여하고 계속됩니다. 나는 도와주세요 내가 아니라 내 문제를 넣을 수 있어요 희망

편집

QUERY

SELECT RECEIPTS.DATENEW AS DATE, 
     TICKETS.TICKETID AS TICKETID, 
     PAYMENTS.PAYMENT AS PAYMENT, 
     PAYMENTS.METHOD AS METHOD, 
     PAYMENTS.TOTAL AS TOTAL, 
     CUSTOMERS.NAME AS NAME, 
(SELECT SUM(P.TOTAL) FROM PAYMENTS AS P 
    INNER JOIN RECEIPTS AS R ON P.RECEIPT = R.ID 
    INNER JOIN TICKETS AS T ON R.ID = T.ID 
    INNER JOIN CUSTOMERS AS C ON T.CUSTOMER = C.ID 
    WHERE C.ID = CUSTOMERS.ID and P.PAYMENT IN ('debt','debtpaid', 'advance', 'cashrefund')) AS CTOTAL 
    FROM RECEIPTS 
      INNER JOIN TICKETS ON RECEIPTS.ID = TICKETS.ID 
      INNER JOIN PAYMENTS ON RECEIPTS.ID = PAYMENTS.RECEIPT 
      INNER JOIN CUSTOMERS ON TICKETS.CUSTOMER = CUSTOMERS.ID 
    WHERE 
      PAYMENTS.PAYMENT IN ('debt', 'debtpaid', 'advance', 'cashrefund') 
.... 
....  
WHERE -TOTAL > 0 

VARIABLE

<variable name="DUES" class="java.lang.Double" resetGroup="Customer" resetType="Group" calculation="Nothing"> 
     <variableExpression><![CDATA[$F{CTOTAL} + $F{TOTAL}]]></variableExpression> 
     <initialValueExpression><![CDATA[new Double(0.0)]]></initialValueExpression> 
</variable> 

당신은 다음과 같이 SQL 문에 변수 자체를 정의 할 수 있습니다

enter image description here

+0

당신은에 의해 반환 된 데이터의 예를 줄 수 쿼리 및 변수 값을 각 행마다 어떻게 변경해야합니까? –

+0

위에서 설명한대로 리턴 된 데이터는 단순한 double 값이므로'value = value + anotherVal; '으로 사용해야하므로 어떤 의미에서는 값의 변수는 보고서의 각 행마다 적절히 변경됩니다 – Saqib

답변

0

출력 : -

SELECT SUM(@csum := @csum + TOTAL+PARTIAL) 
    FROM (SELECT TOTAL, PARTIAL,@csum := 0 
     FROM PRICE WHERE TOTAL > 0 
     ) a; 

See this question and answer

+0

확실합니까? 재 스퍼 보고서에서 작동 할 것입니다. 각 행의 변수에 항상 새로운 값이 있습니까? – Saqib

관련 문제