2017-06-06 92 views
1

我试图创建一个条形图,显示表中多列的值。这是一个非常简单的条形图,我无法弄清楚如何在APEX 5/SQL中进行设计。Oracle Apex 5:在条形图中使用多列Axix

Chart describing what I mean

基本上,我想条形图的X轴具有用于我的表的每一列杆(我选择),和杆将代表该列的总和,由一列分组称为appname。

我知道我需要一个:

SELECT SUM(列) FROM mytable的 GROUP BY应用程序的名字

但我似乎无法得到柱状图表示每个专栏中,我选择。

希望我已经解释清楚了,我的同事谁不知道如何帮助说我没有解释得很好。

回答

1

这可以做到,但据我所知只有固定数量的数据集。这就是我能与一些虚拟数据做: enter image description here

,你所要做的就是先创建一个图表套类似的一个什么:

select code, sum(value) as total 
    from data 
where app_id = 1 
group by code 
order by code 

产生这种(与我样本数据): enter image description here

现在,当你在看区域定义你会看到,该区域包含一个“系列”:enter image description here

(默认情况下它被命名为“Series 1” - 但我已将其重命名为“App 1”)。

现在你可以在系列1右击并选择“复制”和一个新的,重复的系列将被创建。然后,您可以编辑这个新系列的名称和SQL来引用应用程序2.然后,当您运行它时,您会看到我在开始时显示的结果。

+0

谢谢!这已经完成了我想要的!我并不知道重复该系列的能力。 – Rhenderson91

0

以下是您需要做的事情。在图表源SQL,定义是这样的

SELECT SUM(column1) as col_sum, 
     Column1 as Series, 
     column1 as Column_name 
     FROM myTable GROUP BY appname 
     sort by appname 

union all 

SELECT SUM(column2) as col_sum, 
     Column2 as Series, 
     column3 as Column_name 
     FROM myTable GROUP BY appname 
     sort by appname 

union all 

SELECT SUM(column3) as Col1_sum, 
     Column3 as Series, 
     column3 as Column_name 
     FROM myTable GROUP BY appname 
     sort by appname 

------等等 - 所有列----- 在一系列属性,设置源>类型的地区来源。

在列Mappin,选择系列作为系列名称,列名作为标签,并col_sum的价值。

在图表属性中,外观>堆栈 - 设置为No.

这应该有效。

或者,而不是使用union all你也可以定义每个系列单独的SQL查询,并有每列一个系列。在这种情况下,您的查询中不需要Series