在用帆软的时候,我们总会遇到行转列的难题,接下来我将用最最简单的方法实现,大部分数据库都适用。
第一步、这是假数据

第二步、channel作为分类,product作为系列,来统计amount_sold。
1.思路:帆软的数据集可以写入参数,我们用参数的方法将统计方式写入。

2.coln参数的值应该怎么传入?
我使用的是数据库自带的多行转一行方法:group_concat,这个方法不同的数据库有不同的改变,但大多数都用这个函数。切记不要忘记去重之后,在做group_concat,不然就会出现很多很多个同样的字段了。
select group_concat(concat("case when product='",product,"' then amount_sold else 0 end ",product)) product from
(select distinct product from sales) a

像这样,将sql以参数的方式拼接到数据集中,最终就可以实现多行专列

第三步、echarts引用
可以看到引用的时候,就可以读取到这三个动态的系列了,无论你系列有多少,都能读取到。不过可惜的是,帆软没有办法动态读取列,这样就让这个难度升级了。
 |