Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在Oracle Pl/sql中计算余额_Oracle_Plsql - Fatal编程技术网

尝试在Oracle Pl/sql中计算余额

尝试在Oracle Pl/sql中计算余额,oracle,plsql,Oracle,Plsql,我试图计算当前库存,该库存小于或等于pl/sql中输入的日期。例如:2015年1月1日和2015年1月5日我分别有两个借方100和20分录。然后在我的报告中,它应该显示我1月1日的余额100和1月5日的余额120。因此,我在函数中使用循环。但它没有显示股票总数。我的代码是: V_NUM NUMBER:=0; BEGIN IF(F_DR_CR='D')THEN `IF C2%ISOPEN THEN CLOSE C2; END IF; OPEN C2; FETCH C2 IN

我试图计算当前库存,该库存小于或等于pl/sql中输入的日期。例如:2015年1月1日<代码>和2015年1月5日<代码>我分别有两个借方<代码>100<代码>和<代码>20<代码>分录。然后在我的报告中,它应该显示我1月1日<代码>的余额<代码>100和1月5日<代码>的余额<代码>120。因此,我在函数中使用循环。但它没有显示股票总数。我的代码是:

V_NUM NUMBER:=0;
BEGIN
IF(F_DR_CR='D')THEN 
 `IF C2%ISOPEN THEN 
   CLOSE C2;
  END IF;
  OPEN C2;
  FETCH C2 INTO V_BAL; 
  LOOP 
  V_NUM:=V_BAL+(V_NUM);
 RETURN V_NUM;
 EXIT WHEN C2%NOTFOUND;
 END LOOP;
END;

有人知道我的问题的解决方案吗?

计算运行总数的最简单方法是使用分析总和()


毫无疑问,有人说你必须用PL/SQL解决这个问题,但这是最简单、最有效的方法。

发布c2的代码。.如果是“D”,你可以尝试运行total。我们需要查看c2游标的查询。在我看来,你的代码不会运行。相反,我希望它会抛出
PLS-00372:在过程中,RETURN语句不能包含表达式。然而,很难确定,因为你还没有发布整个程序。RETURN并不像你想象的那样:你肯定是用错了。同样,如果看不到整个代码,就很难纠正逻辑。
SQL> select dt
  2         , qty
  3         , sum (qty) over (order by dt) as run_tot
  4  from t23 
  5  order by dt
  6  /

DT               QTY    RUN_TOT
--------- ---------- ----------
07-JAN-15        100        100
13-JAN-15         20        120
19-JAN-15         20        140
25-JAN-15        -30        110

SQL>