我希望SUM t.amount,w.bStake和w.lStake(有条件地)
来自交易t和投注w。
金额应该总是总结一下,而后退和利润之间应该是一个条件。
If w.Profit is positiv -> t.Amount + w.Back
If w.Profit is negativ -> t.Amount + w.Profit
我在此之前使用的代码如下所示:
SELECT
b.Bookie,
(SELECT SUM(t.Amount) FROM Transactions t WHERE t.Bookie = b.id)
FROM Bookie b
我的表是:
Bookie:
------------
Id : int (Primary Key)
Bookie : varchar
Transactions:
-------------------
Id : int (Primary Key)
Date : date
Bookie : int (Foreign Key)
Amount : decimal
Wagers:
Id : int (Primary Key)
Profit : decimal
Back : decimal
Bookie : int (Foreign Key)
我该如何解决这个问题?或者只有重构我的数据库才有可能? 非常感谢。
答案 0 :(得分:1)
你需要加入这三个表,然后你可以用case来得到总和:
SELECT
b.Bookie,
SUM(CASE mySum WHEN If w.Profit >= 0 then t.Amount + w.Back
ELSE t.Amount + w.Profit)
FROM Transactions as t inner join Bookie as b on t.Bookie = b.id
INNER JOIN Wagers as w on b.id = w.bookie