行转列与列转行同时进行
【问题】
Could you please help me how to transposing data from column to row in reports as shown in attachments:
【回答】
面对这类问题,首先应当把数据准备好之后再让报表工具呈现,不过用 JAVA 或 SQL 及存储过程实现动态结果集有些麻烦,但是用 SPL 就简单多了,下面以 SPL 为例:
A |
B |
|
1 |
=myDB1.query("select * from kpi order by f_sitename,dataset_date") |
|
2 |
=A1.id(dataset_date) |
=A1.fname().to(3,) |
3 |
=create(site,'KPI Name',${A2.concat@cq()}) |
|
4 |
for A1.group(f_sitename) |
= A4.align(A2,dataset_date) |
5 |
>B2.run(A3.record([A4.f_sitename,~]|B4.field(~))) |
|
6 |
result A3 |
A2:获取日期时间的 distinct 值
B2:获取 SQL 结果集中的所有列名,从第 3 个开始返回
A3:创建结果序表
A4-B5:根据分组后的 f_sitename 循环取值并写入到 A3 结果序表中
A6:返回 A3 的结果集