使用参数[SQL,Pentaho报表设计器]创建视图

时间:2018-02-24 08:40:38

标签: sql sql-server view

我有一个SQL查询,它接受过滤报告的参数 (Pentaho报告设计师中的$ {p_year,$ {p_month},$ {p_comp}}。

[在Pentaho报告设计师使用视图之前]

SELECT INSERT_DATE,EXT,DURATION_S
FROM TABLE1
WHERE CONVERT(VARCHAR(6),INSERT_DATE,112) = CONCAT(${p_year}, ${p_month}) 
AND DIRECTION = 'OUT'
AND EXT IN (
SELECT DISTINCT TABLE2.EXT
FROM TABLE2
WHERE ((COMP = ${p_comp} OR 'ALL' = ${p_comp}))
)

我正在尝试创建视图以在SQL Server中包含该查询。但是,我不确定这是否是正确的观点。 [在SQL Server中]

CREATE VIEW CALLING AS
SELECT  INSERT_DATE,EXT,DURATION_S
FROM  TABLE1
WHERE DIRECTION = 'OUT' AND EXT IN (
SELECT DISTINCT TABLE2.EXT
FROM TABLE2
)

之后在报表设计器中,我将代码更改为

select * from CALLING

但是,我不知道如何将参数(($ {p_year,$ {p_month},$ {p_comp}})添加到新代码中。有任何想法请建议。

1 个答案:

答案 0 :(得分:1)

您当前的观点似乎对我有用,但在JOIN

中使用VIEW
CREATE VIEW Calling
AS
   SELECT  
          t1.INSERT_DATE, t2.EXT, t1.DURATION_S, t2.COMP  
   FROM  table1 t1
   INNER JOIN table2 t2 ON t2.EXT = t1.EXT
   WHERE t1.DIRECTION = 'OUT'  

而且,您需要使用WHERE子句

调用视图
SELECT * FROM Calling
WHERE INSERT_DATE = @parameter AND COMP = @parameter 

或者,您也可以使用存储过程来传递多个参数