2016-02-29 66 views
0

我有一个包含两个参数PM_DATE和PM_STOCK_ID的报告。它的LOV查询是LOV中的日期查询

SELECT DISTINCT ID FROM STOCK_COUNT 

我想根据用户在日期参数中指定的日期过滤参数PM_STOCK_ID。在我尝试使用的LOV的where子句中:

SELECT DISTINCT ID FROM STOCK_COUNT 
WHERE TRUNC (SCHEDULE_DATE) = NVL (:PM_DATE, SCHEDULE_DATE) 

但是这没有奏效。

我也试着用两个参数,P_SDATE(开始日期)和P_EDATE(结束日期)的范围:它得到错误

SELECT distinct id FROM STOCK_COUNT 
WHERE 
(TRUNC(SCHEDULE_DATE)) BETWEEN NVL(:P_SDATE, TRUNC(SCHEDULE_DATE)) AND NVL(:P_EDATE, TRUNC(SCHEDULE_DATE)) 

Parameter name: P_STOCK_ID Unparseable date: "" 

我如何应这样做?

+0

“这不起作用”不是很有帮助。你为什么要截断左边的'schedule_date'而不是NVL内? –

+0

我用新的查询编辑了答案。它给出了错误参数名称:P_STOCK_ID无法解析的日期:“” –

+0

'unparseable date'是Java日期转换错误,所以原因并不在于您在此处发布的SQL - 尤其是因为没有任何这些查询使用P_STOCK_ID,错误消息中引用的参数。 – APC

回答

0

通过只指定字符串:PM_DATE而没有to_date函数,你会得到隐式类型转换,这可能是困难的根本原因。