如何在Pentaho Report Designer中使用多个查询?

时间:2015-07-30 02:46:39

标签: sql database pentaho pentaho-report-designer

我正在尝试在Pentaho报表设计器中添加两个查询,以便我可以从多个表中获取查询结果。

以下是我的案例:

查询1:

SELECT
     `raw_crawl_shop_list`.`sales`,
     `raw_crawl_shop_list`.`keyword`,
     `raw_crawl_shop_list`.`number`
FROM
     `raw_crawl_shop_list`
LIMIT 1

查询2:

SELECT
     `dim_keyword_tag`.`keyword`,
     `dim_keyword_tag`.`tag`
FROM
     `dim_keyword_tag`

我的问题:

我想分别使用从两个表中选择的五列(这意味着这些列之间没有任何关系,我只是单独使用它们),但是,在Pentaho Report Designer中。我只能使用从一个查询中选择的列。

如下图所示:

enter image description here enter image description here

如果我选择查询1,列2选择的列将消失,如果我选择查询2与查询1相同。

我的问题:

我如何在单个报告中使用Pentaho报告设计器中的两个查询 OR 有没有办法将这两个sql查询合并为一个来自第一列和第二列的三列从第二个?

谢谢大家!

3 个答案:

答案 0 :(得分:4)

在PRD中有两种可能的方法来读取两个查询。

  1. 创建 SUB-REPORT ,然后定义第二个查询。请查看此wiki了解更多信息。

  2. 加入单个查询中的两个表,正如Kotukunui所说的那样。

答案 1 :(得分:0)

如果两个表都在同一个数据库中,只需将它们加入一个查询

即可
SELECT
     `raw_crawl_shop_list`.`sales`,
     `raw_crawl_shop_list`.`keyword`,
     `raw_crawl_shop_list`.`number`,
     `dim_keyword_tag`.`tag`
FROM
     `raw_crawl_shop_list` JOIN `dim_keyword_tag` ON `raw_crawl_shop_list`.`keyword` = `dim_keyword_tag`.`keyword`

答案 2 :(得分:0)

这是从多个查询中获取值的另一种方法。

添加标签,然后编辑“value”属性表达式。根据您的要求设置以下任一公式。在“value”属性值中键入您的查询名称。

这样您就可以直接引用用JDBC连接编写的查询。

=MULTIVALUEQUERY("yourqueryname")
=SINGLEVALUEQUERY("yourqueryname")

否则,您可以在表达式中编写查询,该表达式采用以下输入参数

SINGLEVALUEQUERY()
SINGLEVALUEQUERY([query:string]; [column:string])
SINGLEVALUEQUERY([query:string]; [column:string]; [querytimeout:integer])

MULTIVALUEQUERY([query:string])
MULTIVALUEQUERY([query:string]; [column:string])
MULTIVALUEQUERY([query:string]; [column:string]; [querytimeout:integer])
MULTIVALUEQUERY([query:string]; [column:string]; [querytimeout:integer][limit:integer] )

This会让您更好地了解它。