2016-11-24 10 views
0

以下のクエリを実行すると、投稿タイトルに1111エラーが表示されます。基本的には、テーブル1(special_valuation_temp)をテーブル2(search_upload_quotes)のデータで更新しようとしています。私はテーブル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

はい。それは100万行を超えると非常に遅いです。 – scott80109

答えて

0

はい、それはgroup byを使用せずに間違っています。サブクエリでmin()max()の値を最初に取得し、そのサブクエリの結果でjoinを実行し、そのまま計算してください。

関連する問題