私は2つのテーブル "銀行"と "債券"を持っています。各ユーザーには銀行レコードがありますが、0件、1件以上の債券レコードを持つことができます。MySQL複数の返信行を含むサブクエリでフィールド値を更新します。
「銀行」テーブルのフィールド「現金」を更新するスクリプトを、ユーザーが保持している複数の債券の利益とともに書きたいと考えています。関心は、債券テーブルのissuePrice * couponフィールドによって計算されます。しかし、ユーザーが複数の債券を保有する可能性があるため、債券ごとにこれを行う必要があります。現時点で
は、私はこのような何か試してみました:
$MySQL->db_Query("UPDATE bonds bo, bank ba SET
ba.cash = ROUND(ba.cash + (bo.issuePrice * bo.coupon), 2),
ba.earned = ROUND(ba.earned + (bo.issuePrice * bo.coupon), 2)
WHERE LOWER(ba.user) = LOWER(bo.holder) AND
LOWER(bo.holder) <> LOWER('Bank');");
をしかし、それは期待される結果を与えるものではありません。私は2つのボンドを持つユーザーと一緒に試しました。両方のボンドがそれぞれ500の利息を与えるべきなので、合計1000で、1つのボンドしかないように500を追加します。私は1000年の計算興味を持つ500利息およびその他の一つとして1個の結合を設定した場合、それは突然... 475
変換それをSELECTにして、出力があなたが期待しているものであることを確認してください。 –