2016-12-21 139 views
0

我不得不創建一個函數,表示從「Datoru TEHNIKA」類別中最小的數字,這是我的代碼:錯誤1318(42000):FUNCTION的參數數量不正確;預計2,有1

delimiter // 
create function min_cena (Nosaukums char(30), Kategorija char(30)) 
Returns int(11) 
begin 
declare min_summa int; 
set min_summa = (select min(cena) from Preces where Piegadatajs = "3" AND Kategorija = "Datoru tehnika"); 
return min_summa; 
end // 

當我嘗試調用它,我使用:

set @w = (select Nosaukums from Piegadataji where ID = "3"); 
set @r = "Datoru tehnika"; 
select concat(@w, " minimala cena",@r, " kategorija: ", min_cena(@r)) as "Rezultats"; 
end // 

但每當我做到這一點,這是我得到的錯誤:

ERROR 1318 (42000): Incorrect number of arguments for FUNCTION eksamens.min_cena; expected 2, got 1 

我不知道我應該做的,我想我什麼都知道,一切都停止工作。

這可能是一個簡單的解決方案,但我做不到。

謝謝你的幫助。

+0

你傳入只有一個參數到'min_cena()'函數。 –

+0

請檢查你的代碼,你只是傳遞1 @r參數,但是這個函數需要2個參數。 – ManuSharma

+0

我真的只通過一個?我在那裏使用@w和@r ......或者只是其中一個參數? – Arthur

回答

0

使用在第二代碼段此

set @w = (select Nosaukums from Piegadataji where ID = "3"); 
set @r = "Datoru tehnika"; 
select concat(@w, " minimala cena",@r, " kategorija: ", min_cena(@w,@r)) as "Rezultats"; 
end 
+0

謝謝,我終於明白了我的問題。 – Arthur

+0

歡迎:) - @Arthur –

+0

請問爲什麼在創建函數部分,它忽略了「AND Kategorija =」Datoru tehnikas「?有一個名爲Kategorija與Datoru tehnikas的列。 – Arthur

相關問題