所以我创建了以下代码:
Select c_id, c_name
From bk_CustWithOrders
where to_char(order_date,'MM-YYYY')=prevMonth(sysdate '2014-11-27', 4)
INTERSECT
Select c_id, c_name
From bk_CustWithOrders
where to_char(order_date,'MM-YYYY')=prevMonth(sysdate '2014-11-27', 3)
INTERSECT
Select c_id, c_name
From bk_CustWithOrders
where to_char(order_date,'MM-YYYY')=prevMonth(sysdate '2014-11-27', 2);
我收到以下错误消息:
ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Error at Line: 3 Column: 55
我尝试添加括号,但后来又发生了另一个错误。不知道该怎么做。
答案 0 :(得分:0)
我不知道关于函数prevMonth
的任何内容。
但是,我注意到sysdate和'2014-11-27'之间没有分隔符。
prevMonth(sysdate '2014-11-27', 2);
在sysdate and '2014-11-27'
之间使用',并重新检查:
prevMonth(sysdate, '2014-11-27', 2);
否则你必须使用sysdate or '2014-11-27'
prevMonth(sysdate, 2);
prevMonth('2014-11-27', 2);
答案 1 :(得分:0)
第3行,第55栏正好在这一部分的开头:
' 2014-11-27',4)
他说:我不明白为什么你把一个空格作为分隔符。
答案 2 :(得分:0)
sysdate '2014-11-27'
无效。
如果您只想指定日期文字,则应为:date '2014-11-27'
sysdate
是一个返回当前日期的函数。如果您只想将当前日期传递给该功能,请仅使用 sysdate
。