member
andという名前の 2 つのテーブルexpense
と、bridge
結合目的で使用されるテーブルがありexpense
、そのパートナーであるメンバーに均等に分割する必要がありますexpense
UPDATE
//Create Member table
CREATE TABLE member(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);
// Create Expense table
CREATE TABLE expense (_id INTEGER PRIMARY KEY AUTOINCREMENT, amount INTEGER, expenseItemName TEXT);
// Create Bridge Table
CREATE TABLE bridge( bridgeId, _id INTEGER FOREGIN KEY REFERENCES member( _id ) ON DELETE CASCADE, exp_id INTEGER FOREGIN KEY REFERENCES expense(_id) ON DELETE CASCADE);
、私はcount of present members
このように取得しますMEMBER COUNT QUERY
SELECT count(*) FROM member, expense, bridge WHERE expense._id = bridge.exp_id AND member._id = bridge._id GROUP BY expense._id
members
これにより、現在の正確なカウントが得られますが、このように現在のメンバー
expense
に分割したい場合expense
DIVIDE EXPENSE.AMOUNT QUERY
SELECT expense._id, itemName, bridge._id, expense.amount/(SELECT count(*) FROM member, expense, bridge WHERE expense._id = bridge.exp_id AND member._id = bridge._id GROUP BY expense._id), (SELECT count(*) FROM member, expense, bridge WHERE expense._id = bridge.exp_id AND member._id = bridge._id GROUP BY expense._id) AS total_member, bridge.bridge_id FROM member, expense, bridge WHERE (bridge._id = member._id AND member._id = 2) AND expense._id = bridge.exp_id
このクエリを使用すると、 first に対して正しい結果が得られますが、他のexpense.amount
レコードは正しくありません。この場合のようにすべての桁で除算するように変更する方法。前もって感謝します。MEMBER COUNT QUERY
3,5
DIVIDE EXPENSE.AMOUNT QUERY
expense.amount
first
3
DIVIDE EXPENSE.AMOUNT QUERY
expense.amount
3,5