簡體   English   中英

在 mysql 中使用 CASE function 但出現錯誤代碼:1241 時出現問題。操作數應包含 1 列

[英]Problem when using CASE function in mysql but getting Error Code: 1241. Operand should contain 1 column(s)

我在 mysql 的 function 中使用 CASE 語句,如下所示:

BEGIN
declare Rslt1 decimal(10,2);declare Rslt2 int;declare Rslt3 int;
declare Rslt decimal(10,2);declare Tot decimal(10,2);
set Tot = UnitPrice * OrderQty;
if Calctype = 0 then
 set Rslt1 = Tot;
elseif CalcType=1 then -- Buy X Pay Y
 set Rslt2 = floor((OrderQty/X));
 set Rslt3 = (Orderqty - (RSlt2 * X));
 set Rslt1 = CASE
    WHEN Rslt2 =0 THEN  Tot
    WHEN Rslt2>=1 THEN amntpercent(((Rslt2 * UnitPrice * X),ByAmnt, Dscnt) + (Rslt3 * UnitPrice))
  End;
elseif CalcType = 2 then -- for X Pay Y ( Discount by Amnount or Percentage)
  set RSlt1= amntpercent(Tot,ByAmny,Dscnt);
end if; 

RETURN (Rslt1);

但我每次都收到這個錯誤。 請提供任何幫助

似乎您在 WHEN 條件下有錯誤 ()
嘗試

WHEN Rslt2>=1 THEN amntpercent((Rslt2 * UnitPrice * X),ByAmnt, Dscnt) + (Rslt3 * UnitPrice)

暫無
暫無

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

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