2012-10-29 3 views
0

JasperReports가 SQL GROUP BY ALL 기능을 모방하려고합니다. MY_BOOL에 의해 그룹화 중입니다. 0 또는 1로 값을 표시하고 보고서의 행 수를 표시합니다. 그러나 값 중 하나에 대해 0 행이 있더라도 각 행을 표시하려고합니다. 내 쿼리가 모든 열을 위해 열 행 및 MY_BOOL=0를 반환한다면, 예를 들어, 내가보고 싶은 :JasperReports group by all - 아무 것도 반환되지 않아도 행을 표시합니다.

MY_BOOL | COUNT 
0   10 
1   0 

어떻게이 JasperReports를에 달성 할 수 있습니까?

답변

0

EDITED : 2 개의 변수와 그룹이 필요하지 않은 것 같습니다.

$ V {MY_BOOL_0}은 $ F {MY_BOOL}이 (가) 0 인 모든 행을 계산합니다. $ V {MY_BOOL_1}은 $ F {MY_BOOL}이 (가) 1 인 모든 행을 계산합니다. 각 변수의 초기 값은 0이므로,

2 개의 "그룹화 된"부분합을 제공하기 위해 제목 또는 요약문에 2 개의 변수를 표시하십시오. $ F {MY_BOOL} = 0 인 행이 0 인 경우 중요합니다.

참고 :이 두 변수는 그룹을 전혀 사용하지 않지만 그룹과 호환됩니다. 예를 들어, 개월 단위로 그룹화하면 매월 MY_BOOL_0 및 MY_BOOL_1 값을 계산할 수 있습니다.

+0

MY_BOOL = 0 인 항목이 여전히 0이면 GROUP 내에서 어떻게 작동합니까? 행을 표시하려면 어떻게해야합니까? 아니면이를 달성하기 위해 그룹을 포기해야합니까? – Marianna

+0

나는 당신이 그것을 어떻게보고 있는지 보았다고 생각합니다. 내 대답을 업데이트 할게. – mdahlman

+0

고맙습니다. 그래도이 작업을 수행하는 더 간단한 방법이 있는지 궁금합니다. 그대로, 그룹별로 정리 된 행이 있습니다 (MY_BOOL). 그룹 기능은 실제로 내가 필요한 것입니다. 당신이 제안하는 방식대로하면 간단한 예제에서 잘 작동하지만, 실제 응용 프로그램에서는 22 개의 필드가 있습니다.이 필드는 그들이 속한 그룹을 기반으로 요약됩니다. 정규 밴드에서 작동하도록하려면 MY_BOOL 값을 기반으로 데이터를 얻기 위해 이상한 검색 쿼리를 작성해야합니다. 이상적으로, 나는 그것을 그대로 유지하고, MY_BOOL = 0 또는 MY_BOOL = 1의 수가 0 인 경우에만 여분의 행을 추가하십시오. – Marianna