次のテーブルがあります。
取引: 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 )が、どうすればいいのかまったくわかりません!
どんな提案でも大歓迎です。