0

「基本的な」種類を超えた mysql クエリにまだかなり慣れていないにもかかわらず、自分をばかにしてしまった場合はご容赦ください。現在、2 つのデータ テーブルがあります。

表 1 には LOAD INTO を使用して解析されたデータがあり、表 2 にはユーザー情報のために手動で入力されたデータがあります。これは | から自動的に取得されます。区切りファイルを 1 日 2 回。

以下は、検証する必要があるデータを含む Table1 の列です (これら以外にも列があります)。

sendID |  recID | transAmt | transDate | transStatus

そして、次の列は Table2 からのものです。

userID | userName | currentCapacity | maxCapacity

私がやろうとしているのは、 が 1 つ増える更新を実行することuserID curentCapacityです。私は次のことを試しました:userIDsendIDrecIDtransStatus = Active

UPDATE table1,table2
SET table2.currentCapacity=table2.currentCapacity+1 
WHERE ( table2.transStatus="Active" AND (table2.userID = table1.sendID OR table1.recID))

これは機能し、currentCapacity1 ずつ増加しますが、1 だけ増加します。私が目指している効果は、すべての="Active"currentCapacityの合計と等しくなるように設定することです。transStatus

次のことを試してみましたが、「#1111 - グループ関数の使用が無効です」というエラーが返されます。

UPDATE table1,table2
SET table2.currentCapacity=SUM(table1.transStatus) 
WHERE ( table2.transStatus="Active" AND (table2.userID = table1.sendID OR table1.recID))

提案やガイダンスはありますか?

4

1 に答える 1