次のテーブルがあります。
取引: Transaction_ID
Datetime
Giver_ID
Recipient_ID
Points
Category_ID
Reason
報酬: Reward_ID
Title
Description
Image_URL
Date_Inactive
Stock_Count
Cost_to_User
Cost_to_System
購入:Purchase_ID
Datetime
Reward_ID
Quantity
Student_ID
Student_Name
Date_DealtWith
Date_Collected
スタッフ メンバーは、次のようにトランザクションテーブルへのエントリとなるポイントを学生に授与します。
Transaction_ID
Datetime
Giver_ID
Recipient_ID
Points
Category_ID
Reason
8
2011-09-07
36761
127963
2
1
Excellent behaviour in behaviour unit
学生は、次のように、購入テーブルへのエントリとなる報酬を購入できます。
Purchase_ID
Datetime
Reward_ID
Quantity
Student_ID
Student_Name
Date_DealtWith
Date_Collected
1570
2012-05-30 12:46:36
2
1
137616
Bradley Richardson
NULL
NULL
すべての報酬は、報酬データベース テーブルに手動で保存されます。
Reward_ID
Title
Description
Image_URL
Date_Inactive
Stock_Count
Cost_to_User
Cost_to_System
1
Lunch Time Queue Pass (month)
Beat the queue and get to the hot food early!
/user/74/167976.png
2012-04-16 11:50:00
0
100
0
私の質問は次のとおりです:
Reward_ID と Student_ID が与えられた場合、学生が報酬を購入するのに十分なポイントを持っている場合、どの SQL ステートメントを使用して解決できますか?
以前に PHP でこれを実行したことがありますが、可能であれば単一の SQL ステートメントを使用して実行できるようにしたいと考えています。疑似コードは次のようなものですSELECT ( SumOfPointsEarned - SumOfPointsOfPurchasesMade )
が、どうすればいいのかまったくわかりません!
どんな提案でも大歓迎です。