「基本的な」種類を超えた mysql クエリにまだかなり慣れていないにもかかわらず、自分をばかにしてしまった場合はご容赦ください。現在、2 つのデータ テーブルがあります。
表 1 には LOAD INTO を使用して解析されたデータがあり、表 2 にはユーザー情報のために手動で入力されたデータがあります。これは | から自動的に取得されます。区切りファイルを 1 日 2 回。
以下は、検証する必要があるデータを含む Table1 の列です (これら以外にも列があります)。
sendID | recID | transAmt | transDate | transStatus
そして、次の列は Table2 からのものです。
userID | userName | currentCapacity | maxCapacity
私がやろうとしているのは、 が 1 つ増える更新を実行することuserID
curentCapacity
です。私は次のことを試しました:userID
sendID
recID
transStatus = Active
UPDATE table1,table2
SET table2.currentCapacity=table2.currentCapacity+1
WHERE ( table2.transStatus="Active" AND (table2.userID = table1.sendID OR table1.recID))
これは機能し、currentCapacity
1 ずつ増加しますが、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))
提案やガイダンスはありますか?