交叉报表中分组后拼接串成员

【问题】

两个问题:

1、Tamnguyen:

I have followed the instruction about FIRST function, and it works. But from my side, the data table look like this:

ID -- TagName   -- TagValue
1 -- StringTag  -- string1
1 -- StringTag -- string2
2 -- NumberTag -- 123
2 -- NumberTag -- 45

FIRST or LAST only display first or last TagValue, how can I achieve this in datacube:

ID -- StringTag -- NumberTag
1 -- string1, string2  --
2 --        -- 123, 45

2、Sadaf Behbahani

I have the same problem as the last post and I would like to know is there any ways to have an out put like mentioned above?

Date -- Category – Icon
1 -- cat1 -- ic1
1 -- cat2 -- ic2

 and in my cross tab i need to have something like this:

Date -- Category -- Icon
1 -- cat1,cat2 -- ic1,ic2

【回答】

To Tamnguyen:

交叉表控件没有这种汇总运算,不能直接使用这种源数据,可将源数据转为如下格式的 dataset,再用交叉表控件呈现:

IDTagNamevalues
1StringTagstring1,string2
2NumberTag123,45

用报表脚本描述不太方便,这里可以用 SPL 写一下:

A
1$select ID,TagName,TagValue from tb1
2=A1.group(ID,TagName; ~.(TagValue).concat@c():values)

BIRT 可通过 jdbc 访问集算器,类似例子可参考【BIRT 调用 SPL 脚本

To Sadaf Behbahani:

类似地,也可用 SPL 将源数据直接转为需要的二维表,再用 table 控件呈现:

A
1$select Date,Category,Icon from tb2
2=A1.group(Date; ~.(Category).concat@c():Cats,~.(Icon).string():Icons)

这里的“~”表示分组后的每组记录,“(Category)”表示取字段形成的集合,函数 concat@c 可将集合成员拼为字符串,分隔符是逗号。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值