2012-09-05 3 views
0

매개 변수가 아닌 변수에 대한 표현식을 작성하려고합니다. 다른 텍스트 상자에서 계산을 수행 할 수 있도록 참조 할 수 있습니다. 여러 데이터 세트가 있는데 각 데이터 세트에 대해 SUM(SUM(Fields!amount.Value))이 필요합니다. 그런 다음이 숫자를 다른 텍스트 상자에서 사용하여 서로 추가합니다. 구문에 대한 도움이 필요합니다. 문제없이 SUM을 단독으로 사용할 수 있습니다. 예를 들어,이 잘 작동합니다 :SSRS 변수 식 - Sum, Sum, Scope?

=SUM(Fields!Amount.Value, "DataSet1") 

그러나 나는 그것을 수정하려고 오류를 얻을 (내가 실제로 필요로하는 무슨이다) 다음

=SUM(SUM(Fields!amt.Value, "Acctrange_90300_90399_InterestExpenses")) 

나는

말하는 오류가

"보고서의 본문에 대한 변수 식은 범위가없는 집계 식을 사용합니다. 보고서 집계가 아닌 한 모든 집계에 범위가 필요합니다. 은 데이터 영역 외부에서 사용됩니다 정확하게 하나의 데이터 세트를 제공합니다. "

필자의 구문/괄호 배치에 문제가 있다는 점에 나는 솔직합니다. 어떤 제안?

답변

1

예를 들어 샘플 데이터와 예상되는 솔루션에 대한 자세한 예를 제공해 주시겠습니까?

왜 SUM (SUM())을 원하는지 이해할 수 없기 때문에. 내부 SUM()은 단일 정수 값을 가져 오며, 왜 단일 값에서 다른 SUM을 수행할까요? 그것이 효과가 있었다고하더라도, 그것은 단지 같은 가치 일 것입니다. 내가 잘못 질문을 이해하면 사과 드릴 수 있습니다. 나는 대답 할 수 없으므로 대답하고 싶습니다. 그러나 당신이 찾고있는 것을 분명히 알고 싶습니다. SUM (SUM(), SUM(), SUM() ...)을 수행하려고하는지 이해할 수 있습니다. 에서와 같이, 합계의 합계.

죄송합니다. 더 많은 정보를 문의하기 위해 답변을 드렸지만 죄송합니다. 댓글 옵션을 볼 수 없습니다.


UPDATE :

확인 지금 나는 당신이 그렇게 SUM(Fields!a.Value) 당신에게 w을 줄 것이며, SUM(Fields!b.Value) 등등 당신에게 x을주고, 것

 | a | b | c | d | 
--------------------------- 
1  | * | * | * | * | 
--------------------------- 
2  | * | * | * | * | 
--------------------------- 
3  | * | * | * | * | 
--------------------------- 
total | w | x | y | z | 

같은 뭔가를 생각합니다. 그리고 w+x+y+z을 원하십니까? 그 그렇다면, 당신은이 작업을 수행 할 수 있습니다

호출, 사용자 변수에서 다음

{ (a1+b1+c1+d1),(a2+b2+....), .... }처럼

을 행 합계를 계산하는 데이터 집합에 계산 필드를 추가하고

SUM(Fields!CalculatedField.Value) .이 모든 분야에서 각 항목의 합으로 계산 된 필드의 각 항목을 만들 것

= CInt(Fields!a.Value)+CInt(Fields!b.Value)+CInt(Fields!c.Value)+CInt(Fields!d.Value) 

:

위의 예를 들어, 계산 된 필드에게로 식을 제공 할 수 있습니다. 계산 된 필드의 합계를 통해 답을 얻을 수 있습니다.

희망은 당신이 원하는 것입니다. 그렇지 않으면, 나는 그 문제를 이해하려고 노력했다. :)

+0

감사합니다 s1lntz. 데이터 세트는 테이블에서 "금액"을 가져옵니다. 금액 (테이블 릭스의 데이터)은 다른 계정 (테이블 릭스 행)과 지역 위치 (테이블 릭스의 열)에 속합니다. 금액의 합계는 작은 위치를 함께 덩어리로 만들고, 두 번째 합계는 테이블 릭스의 하단에 총 수직을 제공합니다. 셀에 사용하는 식은 SUM (Fields! Amount.Value)이지만 아래쪽 가로 합계 식의 식은 SUM (SUM (Fields! Amount.Value))입니다. 웬일인지 나는이 효과를 재현하는 변수를 만들 수 없다. – dp3

+0

업데이트 된 답변을 확인하고 필요한 것이 있는지 확인한다. – s1lntz

1

바깥 쪽 SUM도 범위가 필요합니다. 새로운 & 다른 방법으로 - -

=SUM(SUM(Fields!amt.Value,"Acctrange_90300_90399_InterestExpenses"),"Acctrange_90300_90399_InterestExpenses") 

나는이 또한 실패 할 것으로 예상하지만, 오류가 가까이 솔루션을 얻을 것이다 :이보십시오.

+0

좋습니다, 불행히도 SSRS는 협조하지 않습니다. "보고서 본문의 변수 식에 데이터 집합 범위를 지정하는 외부 집계에 내부 집계가 있습니다. 데이터 집합 범위를 지정하는 집계에 다른 집계를 포함 할 수 없습니다."라는 오류가 발생했습니다. 이러한 모든 변수가 수행하고 있기 때문에 웃기는 것은 다른 텍스트 상자에 표시되는 데이터를 복제하려고 시도하는 것입니다. 실제로는 너무 많이 물어보아야합니까? – dp3

0

SSRS가 나에게 두통을주고 싶을 때, 나는 속인다. 안쪽 계산을 숨겨진 텍스트 상자에 넣거나 표시하려면 상자에 이름을 지정한 다음 이름으로 참조하십시오. 내가 txtFirstColumnSum라는 텍스트 상자 및 txtSecondColumnSum라는 텍스트 상자에 두 번째 열 합계에서 첫 번째 열의 합계가 있다면 그래서, 사용하십시오 :

=cdec(ReportItems!txtFirstColumnSum.Value)+ cdec(ReportItems!txtSecondColumnSum.Value)... 

또 다른 방법은 내장 사용 할 범위에서,하지만 필드 사이의 수학을 처리하는 사용자 정의 코드를 작성. 예를 들어 전년도 같은 기간 동안 현재 YTD 판매의 비율을 원하고 0으로 나누기를 확인하려는 경우 식으로 할 수는 있지만 여러 단계에서 사용할 수 있으므로 대신 만든 사용자 지정 코드 :

Public Function DeltaPercent(ByVal currentAmount as decimal,ByVal pastAmount as Decimal) as Decimal 
    Dim difference as decimal 
    Dim result as decimal 
    if pastAmount<>0 then 
     difference=currentAmount-pastAmount 
     result=difference/pastamount 
    else 
     result=0 
    end if 
return result 

End Function 

는 그 다음 % 변화를 얻기 위해, 나는 그것을 전화 :

=Code.DeltaPercent(Sum(Fields!SalesYTD.Value, "SalesTerritory"),Sum(Fields!SalesPY1TD.Value, "SalesTerritory")) 

한 끝에 내가 더 빨리 알았 바랍니다 : 당신이 구문을 사용하는 경우

ReportItems("txtFirstColumnSum").Value 

을 올바르게 입력했는지 확인해야합니다. 위의 bang 구문 (!)을 사용하면 인텔리 센스를 얻게됩니다.