お金でバックギャモンをプレイするプレーヤーのトランザクションの値を保存するように設計されたテーブル [Transaction] があります。ハウスは、クレジット (ゲーム内で購入して後で支払う) またはデビット (手持ちの現金で支払う) を与えることができます。取引には 4 種類あります (借方、貸方) および (「貸方決済」 - 顧客が借りている金額の一部または全部を返済し、「借方決済」 - 家がプレーヤーにお金を借りている場合に家が支払う)。私がやろうとしているのは、バランスを見つけることです。多くのSQLステートメントを試しましたが、常に何かが欠けており、バランスが正しくありません。
簡単なシナリオは次のとおりです。顧客が来店し、300 のクレジットで購入します。彼は 100 をキャッシュアウトしたので、200 を家に借りています。彼は翌日来て、100 クレジットを購入し (したがって、彼は 300 を借りている)、最終的に 1000 をキャッシュアウトします。家は彼に 500 を支払いますが、さらに 200 を借ります。家は顧客に 200 を支払うので、これは「借方決済」として保存されます。
ここに私がこれまでに持っているものがありますが、結果は常に正しいとは限りません:
SELECT SUM(Cashout) - ((SELECT COALESCE (SUM(Paid), 0) AS Expr1
FROM [Transaction]
WHERE (Type = 'Credit Settlement')) + SUM(Buyin) +
(SELECT COALESCE (SUM(Paid), 0) AS Expr1
FROM [Transaction] AS Transaction_3
WHERE (Type = 'Debit Settlement') AND (Paid IS NOT NULL))) AS OutstandingDebit
FROM [Transaction] AS Transaction_1
WHERE (Type <> 'Debit Settlement') AND (Cashout >= 0) AND (CustomerID = 132)