2014-07-24 179 views
0

我写的SQL代码并得到以下错误:SQL语句忽略

LINE/COL ERROR 
-------- ----------------------------------------------------------------- 
7/2 PL/SQL: SQL Statement ignored 

声明:

CREATE OR REPLACE FUNCTION GET_C_O(vretail_outlet_id int, 
            vtran_year varchar) 
    RETURN number 
AS 
    stock number; 
BEGIN 
    select vretail_outlet_id, 
     SUM(GET_C_O_STOCKFN_TEST(61, a.BATCHID, 1, 
            to_date('204-04-01','yyyy-mm-dd'), 
            vretail_outlet_id, vtran_year, 1) * QP.PRODUCTRATE) AS OPENING 
    From Promas 
    inner join Product A 
     on Promas.Pcode = A.Pcode and 
     vretail_outlet_id = A.Retail_outlet_id and 
     vtran_year = a.tran_year 
    inner Join QryProductrate Qp 
     on Qp.batchid = a.batchid and 
     QP.Retail_outlet_id = a.REtail_outlet_id and 
     Qp.Tran_year = a.tran_year 
    where a.tran_year = '2014_2015' and 
      1=1 
    group by vretail_outlet_id) 
    into stock 
    from dual; 

Return Stock; 
END; 
+0

我认为编写连接命令时有一些问题,但我无法得到它是什么,这是在PL/SQL内部运行查询的写入方式? – Syed

+0

函数内部有完全错误的SQL。首先在单个股票变量中选择两个字段vretail_outlet_id,SUM(..),然后在双重表上应用SUM函数。 这根本行不通,请写下你想要的。 –

回答

1

SELECT语句是不正确的。试试:

select SUM(GET_C_O_STOCKFN_TEST(61, a.BATCHID, 1, 
           to_date('2014-04-01','yyyy-mm-dd'), 
           vretail_outlet_id, vtran_year, 1) * QP.PRODUCTRATE) AS OPENING 
    into stock 
    From Promas 
    inner join Product A 
    on Promas.Pcode = A.Pcode and 
     vretail_outlet_id = A.Retail_outlet_id and 
     vtran_year = a.tran_year 
    inner Join QryProductrate Qp 
    on Qp.batchid = a.batchid and 
     QP.Retail_outlet_id = a.REtail_outlet_id and 
     Qp.Tran_year = a.tran_year 
    where a.tran_year = '2014_2015'; 

分享和享受。