簡體   English   中英

在 mysql 中調用過程時出錯:錯誤代碼:1222。使用的 SELECT 語句具有不同的列數

[英]error when I call procedure in mysql:Error Code: 1222. The used SELECT statements have a different number of columns

delimiter /
drop procedure if exists piez_vend;/
create procedure piez_vend (IN _piez varchar(20), out nvend int(11))
begin
SELECT numpieza, count(numvend) into nvend from preciosum where numpieza like _piez;
end
/
delimiter ;

call piez_vend('dd-0001-210',@nvend);

樣本數據

 numpieza, numvend, preciounit, diassum, descuento
'a-1001-l', '1', '1.60', '3', '0'
'a-1001-l', '3', '3.00', '1', '0'
'c-400-z', '1', '7.80', '4', '5'
'c-400-z', '6', '6.50', '3', '0'
'dd-0001-210', '1', '300.00', '3', '15'
'dd-0001-210', '2', '310.00', '5', '12'
'dd-0001-210', '4', '287.00', '15', '10'
'm-0001-c', '1', '550.00', '3', '10'
'm-0001-c', '5', '570.00', '7', '15'
't-0002-at', '2', '25.80', '3', '0'
't-0002-at', '4', '27.00', '5', '7'

錯誤信息有點遲鈍。

使用的 SELECT 語句具有不同的列數

這意味着這個查詢

SELECT numpieza, count(numvend) into nvend from preci...

不起作用,因為SELECT提到了兩列。 但是您正在使用into告訴 MySQL 將其中一列的值放在哪里。 它不知道如何處理另一列。 試試這個。

SELECT count(numvend) into nvend from preci...

專業提示存儲過程很難調試。 在將它們包裝在過程中之前嘗試其中的查詢是有幫助的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM