2017-01-27 235 views
-1

我得到下面的函数以下错误:错误代码:1242子查询返回多个1行

错误代码:1242子查询返回多个1行

In没有按”在这里工作。我能做什么?

delimiter $ 

create function pricesTax()returns decimal(8,2) 
begin 
    declare y decimal(8,2); 
    declare z decimal(8,2); 
    declare M decimal(8,2); 

    set y = (select PR(Prices) from Products); 
    set z = (select Prices from Products); 
    set M = y*z; 

    return M; 
end $ 

delimiter ; 

回答

2

你的一个查询返回一个以上行,所以你应该limit结果:

set y = (select PR(Prices) from Products limit 1); 

set z = (select Prices from Products limit 1); 

更可能是,重新审视自己的触发以适当的方式。

+0

在这种情况下,没有替换到-in-子句,它可以在一个函数内工作,因为我想要多个结果? –

+0

该错误与某些选择相关,返回多于一行,并且您试图将这些结果(多于一个)分配给仅接受一个值的var ..因此可能您必须重新考虑您触发.. – scaisEdge

+0

您提供了一个提示...谢谢,我还在学习:) –

相关问题