我需要在Firebird 2.5中編寫存儲過程。我寫這個SQL查詢:從選擇查詢創建過程
INSERT INTO A_OBRATYKUMHIST(OBRAT, MONTH, YEAR, SECURITYUSER_ID, FIRM_ID)
select
sum(AO.Obrat), 11, 2010, AO.SecurityUser_ID, AO.Firm_ID
from A_OBRATYKUMHIST_TEMP AO
where
AO.Rok = 2010
and AO.Mesic <= 11
group by
AO.SecurityUser_ID, AO.Firm_ID;
我的目標是填充表與累計和。
編輯1:
所以我寫了這一點:
SET TERM^;
CREATE OR ALTER PROCEDURE A_TESTIK (
start_year integer,
end_year integer)
returns (
obrat integer,
mesic integer,
rok integer)
as
declare variable "YEAR" integer = 2005;
declare variable "MONTH" integer = 1;
begin
select
sum(II.localamountwithoutvat), ib_decodedate_month(VatDate$DATE),
ib_decodedate_month(VatDate$DATE)
from IssuedInvoices II
group by
ib_decodedate_month(VatDate$DATE), ib_decodedate_month(VatDate$DATE)
into :obrat, :mesic, :rok;
suspend;
end^
SET TERM ;^
/* Following GRANT statetements are generated automatically */
GRANT SELECT ON ISSUEDINVOICES TO PROCEDURE A_TESTIK;
/* Existing privileges on this procedure */
GRANT EXECUTE ON PROCEDURE A_TESTIK TO SYSDBA;
但是當我運行它,我得到錯誤:"Multiple rows in singleton select"
。我該如何解決它?
閱讀材料:Interbase的6.0語言參考] (http://www.ibphoenix.com/files/60LangRef.zip)(特別是第3章程序和觸發器)和[Firebird 2.5語言參考更新](http://www.firebirdsql.org/file/documentation/reference_manuals/參考, nce_material/html/langrefupd25.html) –
如果這沒有幫助,請更具體地說明你想知道的內容。 –
@Mihai 有用的評論 – Sk1X1