Oracle 如何将一个月添加到月份和年份

Oracle 如何将一个月添加到月份和年份,oracle,Oracle,我在oracle工作,不熟悉编码,也不熟悉此网站,因此我提前就新手问题向您道歉: 我有一个脚本,我正在尝试运行,将返回未来几个月的销售订单的总和,并将该数字与我们的预算销售预测进行比较。上个月(11月)我建立它时,它工作得很好,但现在是12月,我相信它在确定下个月是新的一年时遇到了问题 基本上,我只想汇总下个月的销售订单记录,并将该数字与我们的预测数字进行比较 以下是我到目前为止所做的(我确信我犯了很多语法错误,所以请耐心等待!) 系统不允许我发布输出的图像,因为我太新了。基本上,我应该得到这样

我在oracle工作,不熟悉编码,也不熟悉此网站,因此我提前就新手问题向您道歉:

我有一个脚本,我正在尝试运行,将返回未来几个月的销售订单的总和,并将该数字与我们的预算销售预测进行比较。上个月(11月)我建立它时,它工作得很好,但现在是12月,我相信它在确定下个月是新的一年时遇到了问题

基本上,我只想汇总下个月的销售订单记录,并将该数字与我们的预测数字进行比较

以下是我到目前为止所做的(我确信我犯了很多语法错误,所以请耐心等待!)

系统不允许我发布输出的图像,因为我太新了。基本上,我应该得到这样的东西:

积压|预测金额|积压百分比

100000 | 200000 |.50


backlog列只是下个月将要发货的所有订单的发货数量*价格的总和。

您的问题是12月的
to_CHAR(sysdate,'MM')+1
返回13,而不是下一年的1。显然没有第13个月

尝试改用
ADD\u MONTHS(sysdate,1)
,并根据需要处理该结果。最好的建议是尽可能将日期处理为日期而不是字符

根据评论更新:

尝试使用:

EXTRACT(MONTH FROM GLPERIODS.START_DATE) = EXTRACT(MONTH FROM ADD_MONTHS(sysdate, 1))

文档:

我没有收到任何错误,但如果我从两个日期行中删除“+1”,我将收到与本月预测相对应的本月订单。它工作得很好。当这个脚本在11月份运行时(带有“+1”),它运行得非常好,并根据12月份的预测给了我12月份的销售订单。谢谢你的回复。我会试着上传一个想要的输出和一些样本信息。我做了很多研究,实际上我已经试过了。当我更改为to_CHAR(GLPERIODS.START_DATE,'MM')=add_months(sysdate,1)…很抱歉,当我更改为上述内容时,会出现常规SQL错误。ORA-01840:输入值不够长,无法设置日期格式我将注释移到了答案中。如果你仍然有问题,试着在我的答案下面评论一下。天哪,你真是个天才。我两天来一直把头撞在墙上。谢谢!谢谢@不客气。如果这对你有帮助,请接受这个答案。
EXTRACT(MONTH FROM GLPERIODS.START_DATE) = EXTRACT(MONTH FROM ADD_MONTHS(sysdate, 1))