为什么此代码在没有问题的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中不起作用。关于从输入参数进行推导的事情导致了问题。请帮忙找到解决方法!
答案 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。