2014-07-24 172 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'; 

分享和享受。