为什么涉及计算的参数查询在SSRS中不起作用?

时间:2016-05-17 23:04:15

标签: oracle reporting-services

为什么此代码在没有问题的SSRS中有效:

SELECT DISTINCT DEPARTMENT FROM MY_TABLE
WHERE MONTH > :O_MONTH

但这不是:

SELECT DISTINCT DEPARTMENT FROM MY_TABLE
WHERE MONTH > trunc(:O_MONTH-30)

我只是好奇,这是什么原因?有没有解决方法,所以我可以嵌入数据集的查询?当我添加第二个版本的查询时,会弹出“定义查询参数”窗口,告诉我一些错误。

请帮忙。谢谢

更新:

例如,两个查询都在TOAD中工作,但第二个(我需要的)在Visual Studio中不起作用。关于从输入参数进行推导的事情导致了问题。请帮忙找到解决方法!

2 个答案:

答案 0 :(得分:1)

您可以尝试以下选项。

SELECT DISTINCT DEPARTMENT FROM MY_TABLE
WHERE MONTH > trunc(:O_MONTH) - 30;

OR

SELECT DISTINCT DEPARTMENT FROM MY_TABLE
    WHERE MONTH > trunc(CAST (:O_MONTH AS DATE)) - 30;

OR

SELECT DISTINCT DEPARTMENT FROM MY_TABLE
    WHERE MONTH > (CAST :O_MONTH AS DATE) - 30;

答案 1 :(得分:0)

如果要传递字符串,请使用TO_DATE转换。例如:trunc(to_date(:o_month,'mm-dd-yyyy')) - 30。