【发布时间】:2008-12-02 03:47:37
【问题描述】:
尝试使用 Oracle 的 Brio 构建仪表板。我必须访问 6 个不同的数据库来获取相同类型的数据,聚合并显示它。除了当我这样做时,Brio 从第一个来源获取数据就好了。当我从第二个数据源抓取数据时,Brio 用第二组数据替换原始数据。所以我无法汇总数据。谁能帮我弄清楚如何在 Brio 中做到这一点?
【问题讨论】:
尝试使用 Oracle 的 Brio 构建仪表板。我必须访问 6 个不同的数据库来获取相同类型的数据,聚合并显示它。除了当我这样做时,Brio 从第一个来源获取数据就好了。当我从第二个数据源抓取数据时,Brio 用第二组数据替换原始数据。所以我无法汇总数据。谁能帮我弄清楚如何在 Brio 中做到这一点?
【问题讨论】:
您需要使用UNION 语句,而不是运行6 次查询。
例如:
不要这样做
SELECT * FROM DATABASE_1..TABLE_1
GO
SELECT * FROM DATABASE_2..TABLE_1
GO
SELECT * FROM DATABASE_3..TABLE_1
GO
改为这样做
SELECT * FROM DATABASE_1..TABLE_1
UNION
SELECT * FROM DATABASE_2..TABLE_1
UNION
SELECT * FROM DATABASE_3..TABLE_1
GO
【讨论】:
如果您为每个来源使用不同的 OCE 文件(您可能是这样),那么就没有简单的方法可以做到这一点。您需要为每个 OCE 文件单独查询
如果可以在一个 OCE 文件下找到所有数据库,则可以使用 UNION 技巧;更要指出的是,在 Brio 中,它被发现为“附加查询”。只需确保您构建的查询与第一个查询的返回内容相同即可;所有的列标题都来自它。
如果您需要将不同的查询合并到单个结果部分,我发现仅使用标准 Brio 函数的最简单(嗯,唯一)方法是通过完全外连接连接每个集合在每个字段上,然后将每个字段合并在一起......但这非常低效,并且无法完成更大的文件。您可能最好对文件进行排序并编写一个 javascript 例程来将它们一起解析,或者首先在 Brio 之外完成整个事情。
【讨论】: