【发布时间】:2017-05-01 14:56:39
【问题描述】:
我使用来自几个不同帖子的建议拼凑了以下代码,但遇到了困难。我对这段代码的最终目标是查找从去年 10 月 1 日到当年 9 月 30 日的记录,而无需提示用户输入或必须在 between 语句中硬编码日期范围。我目前在运行代码时收到以下错误“绑定变量“End_Year”未声明”。
declare
begin_Year date;
begin
select trunc(sysdate, 'YEAR')-92 FY_begin_year
Into begin_Year
from Dual;
end;
declare
End_Year date;
begin
select add_months(trunc(sysdate, 'YEAR'), 12)-93 FY_end_year
into End_Year
from dual;
end;
SELECT inv.company as company
, inv.customer_id as cust
, inv.address_id
,inv.invdate
, SUM(inv.sales) as sales
, SUM(inv.cost) as costs
FROM ifsinfo.hb_invoicing_all inv
WHERE inv.site IN ('06','01')
AND TO_DATE(inv.invdate) between :begin_Year and :End_Year
GROUP BY inv.company
, inv.customer_id
, inv.address_id
, inv.invdate
【问题讨论】:
-
:var_name是一个绑定变量 : 告诉编译器期待用户输入。更改您的 var_names 以删除 : 假设定义的 end_year 和 Begin_year 变量不是 hb_invoicing_All 中的列名...否则还要重命名变量。喜欢var_Begin_yearstackoverflow.com/questions/1597806/…