首页 > 解决方案 > 如何使用 RapidClipse 生成交叉表?

问题描述

我想使用现有的实体/DAO 在 RapidClipse 中生成一个交叉表。结果应加载到 XdevTable/XdevGrid

这可能吗,如果是的话怎么办?

在现有的 DAO 中,我放置了以下 JPA-SQL:

findAllForPivot(String pjahr, String pkontos)
    {
     select 
     l1Id,
     l1GroupName,
     l2Id,
     l2GroupName,
     sum( case when (monat = 1) then dbetrag end ) AS `jan`,
     sum( case when monat = 2 then dbetrag end ) AS `feb`,
     sum( case when monat = 3 then dbetrag end ) AS `mrz`,
     sum( case when monat = 4 then dbetrag end ) AS `apr`,
     sum( case when monat = 5 then dbetrag end ) AS `mai`,
     sum( case when monat = 6 then dbetrag end ) AS `jun`,
     sum( case when monat = 7 then dbetrag end ) AS `jul`,
     sum( case when monat = 8 then dbetrag end ) AS `aug`,
     sum( case when monat = 9 then dbetrag end ) AS `sep`,
     sum( case when monat = 10 then dbetrag end ) AS `okt`,
     sum( case when monat = 11 then dbetrag end ) AS `nov`,
     sum( case when monat = 12 then dbetrag end ) AS `dez`
     from VHibCrosUmsGiroOpaOmaReport
     where  jahr =:pjahr and kontoId in (:pkontos)
     group by l1Id, l1GroupName, l2Id, l2GroupName;
    }

每行都有一个或多个错误:选择后的第一个字段生成:

the field can not be resolved

第一条总和线生成(与所有其他总和线一样):

Multiple markers at this line - `jan` cannot be resolved to a type - case cannot be resolved - missing '(' at 
 'dbetrag' - missing RULE_ID at ',' - dbetrag cannot be resolved to a type - mismatched input '=' expecting 
 RULE_ID - monat cannot be resolved to a type - missing ')' at 'when' - missing '(' at '`jan`' - mismatched input 
 'then' expecting '{' - mismatched input 'AS' expecting '{'

...如果我在 SQL 接口中使用它,选择本身就可以正常工作。

这些字段也与定义的完全一样,如果我使用“findAll”,我将得到所有字段。

至少我想让交叉表结果出现在 XDevTable 中。
之后应该可以单击结果单元格以打开详细信息页面。

我的错误在哪里/出了什么问题?

提前谢谢你 rgds OpaHeinz

标签: jpacrosstabrapidclipse

解决方案


推荐阅读