使用内部连接更新=错误代码:1111.组函数的使用无效

问题描述:

执行下面的查询时,我在帖子标题中看到1111错误。基本上,我尝试用表2(search_upload_quotes)中的数据更新表1(special_valuation_temp)。我想获取最小和最大报价值来更新表1。使用内部连接更新=错误代码:1111.组函数的使用无效

UPDATE special_valuation_temp svt 
     INNER JOIN search_upload_quotes suq 
       ON (svt.clei = suq.clei 
        OR svt.partnumber = suq.partnumber) 
SET svt.vendor_low = (Min(suq.priceperunit) * svt.qty), 
     svt.vendor_high = (Max(suq.priceperunit) * svt.qty) 
WHERE suq.submitted = 1 
     AND suq.priceperunit > 0; 

看来我不能在SET子句中使用MIN()和MAX()函数。有没有另一种方法来做到这一点?

+0

您是否想过使用子选择? – rbr94

+0

是的。超过一百万行太慢了。 – scott80109

是的,这是不正确的,没有使用group by。您可以首先在子查询中获得min()max()值,并使用该子查询结果执行join并按原样进行计算。