1

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

这是我的情况:

查询一:

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 报表设计器中。我只能使用从一个查询中选择的列。

如下图所示:

在此处输入图像描述在此处输入图像描述

如果我选择 Query 1,Column 2 选择的列会消失,如果我选择 Query 2 与 Query 1 相同。

我的问题:

如何在单个报表中使用 Pentaho 报表设计器中的两个查询,或者有没有办法将这两个 sql 查询与第一列的三列和第二列的两列组合在一个查询中?

谢谢你们!

4

3 回答 3

4

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

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

  2. 正如 Kotukunui 所说,在一个查询中加入两个表

于 2015-07-30T10:32:41.473 回答
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`
于 2015-07-30T04:37:35.983 回答
0

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

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

这样你就可以直接引用你用 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] )

会让你更好地理解它。

于 2015-08-30T17:08:14.887 回答