2017-04-07 3 views
0

보고서 작성기에 익숙하지 않으며 보고서에 구현하려고하는 일부 식에 문제가 있습니다. 그러나 어떤 구별을 시도하자마자 표준 메시지를 얻을 수 있습니다. 오류 메시지가 나타납니다. 지난 몇 주 동안, 필자는 다양한 조합을 시도하고, 표현 도움말, Google을 읽고 인터넷 사이트에서 다른 질문을 보았습니다. 저의 좌절감을 줄이기 위해 저는 다른 표현으로 넘어 가서 다른 통찰력이 다시 생길 수 있기를 희망합니다. 아마 무언가 간단하거나 내가 표현을 쓰는 것에 대해 잘 모르는 무언가. 누군가 이러한 표현을 도울 수 있기를 희망합니다. 그것들은 최소한의 에러를 얻는 버전이며 (일반적으로 예상되는 표현식입니다) Im이 성취하려는 것을 보여줍니다.보고서 작성기 표현식

=IIF((Fields!RECORDFLAG.Value)='D',COUNTDISTINCT(Fields!TICKETNUM.Value),0) 
=IIF((Fields!TRANSTYPE.Value)='1' and (Fields!RECORDFLAG.VALUE)='A' or 
    'B',SUM(Fields!DOLLARS.Value),0) 
=IIF((Fields!TRANSTYPE.Value)='1' and 
    (Fields!RECORDFLAG.VALUE)='P',SUM(Fields!DOLLARS.Value),0) 
=Sum([DOLLARS] case when [RECORDFLAG]='P' then -1*[DOLLARS]) 

감사합니다.

+0

오류 메시지를 게시 할 수 있습니까? SSRS는 'THINGY'(큰 따옴표)가 아닌 'THINGY'(작은 따옴표)를 사용합니다. 그게 도움이 될거야. – BishNaboB

+0

좋아요, 내 부분에서는 반응이 느릴 수도 있습니다. 내 컴퓨터와 책상은 공개 된 사람과 유일한 사람이 아니기 때문에 일들을 정리하려고 노력합니다. 그러므로 나는 과거의 메모를 사용할 수 없습니다. 그래서, 나는 시작이 최선의 시작이라고 생각했습니다. – kadflowercloud

+0

업데이트 된 표현을 게시 할 수 있습니까? – BishNaboB

답변

0

=IIF((Fields!RECORDFLAG.Value)=”D”,COUNTDISTINCT(Fields!TICK‌​ETNUM.Value))

오류 메시지가 여기에 당신에게 대답을 제공합니다 - iif()의 거짓 일부가 지정되지 않았습니다. 는 OR이 SSRS에서 작동하는 방법이 아니다 =IIF((Fields!RECORDFLAG.Value)=”D”,COUNTDISTINCT(Fields!TICK‌​ETNUM.Value), 0)

=IIF((Fields!TRANSTYPE.Value)="1" and (Fields!RECORDFLAG.VALUE)="A" or "B",SUM(Fields!DOLLARS.Value),0)

사용합니다. 사용 : =IIF((Fields!TRANSTYPE.Value)="1" and (Fields!RECORDFLAG.VALUE="A" or Fields!RECORDFLAG.Value = "B"),SUM(Fields!DOLLARS.Value),0)

보고서 디자인으로 인해 0이 반환됩니다. countdistinct()은 집계 함수로, 데이터 집합에서 사용하기위한 것입니다. 그러나 iif()은 행 단위로만 테스트합니다. 기본적으로 "현재 행이 모든 것 인 경우 별개의 값을 모두 계산하십시오"라고 말하는 것이 적합하지 않습니다.

  • 당신은 어떤 값이 sum()를 사용하여 주어진 조건에서 발생 횟수를 셀 수 : 앞으로 몇 가지 방법이있다. 이것은 countdistinct()과 같지 않지만, =sum(iif(Fields!RECORDFLAG.Value = "D", 1, 0))을 사용하면 RECORDFLAG가 해당 세트에 D 인 횟수가 표시됩니다. 참고 : 이렇게하려면 데이터를 집계해야합니다 (SSRS에서 테이블 릭스로 그룹화).

  • 사용자 정의 코드를 사용하여 세트의 고유 한 값을 계산할 수 있습니다. https://itsalocke.com/aggregate-on-a-lookup-in-ssrs/을 참조하십시오. 동일한 데이터 세트를 두 번 참조하기 때문에 하나의 데이터 세트 만있는 경우에도이 옵션을 적용 할 수 있습니다.

  • 보고서의 작동 방식을 변경할 수 있습니다. Fields! RECORDFLAG.Value를 그룹화하고 그룹을 Fields! RECORDFLAG.Value = "D"로 필터링 할 수 있습니다. 그런 다음 =countdistinct(Fields!TICKETNUM.Value)을 사용하여 RECORDFLAG가 D 일 때 TICKETNUM의 고유 값을 가져옵니다.

+0

정보 주셔서 감사합니다. 오늘 귀하의 게시물을 보았지만 트래픽이 눈에 띄었고 컴퓨터에 집중할 자유로운 순간이 없었습니다. 나는 화요일에 그 해답을 시험해보고 그것이 성공했는지 알려 줄 것이다. 조심해. – kadflowercloud

+0

나는 네가 옳다고 믿는다; 보고서 설계로 인해 0이 반환됩니다. 아마도 별개의 값을 계산하기 위해 맞춤 코드를 사용해야 할 필요가 있으며 링크를 고맙게 생각합니다. 나는 이것에 관해 더 일할지도 모르고 코드로 작업하기 위해 더 많은 것을 읽을지도 모른다. Access & GIS에 대한 10 년 된 저의 지식과 보고서 작성기를 배우는 도움말 섹션을 읽는 것만으로도 지금까지 저를 수행 할 수 있습니다. 적어도 나는 올바른 방향을 가리켰다. 그리고 커스텀 코드는 저의 목표 인 일상적인 값을 계산하는 데 도움이 될 것입니다. 모든 도움에 감사드립니다. – kadflowercloud

관련 문제