我正在寻找以下问题的解决方案:
进入用户表并查找在网站上列出了项目的用户。在这个用户表中,没有关于拍卖的列。相反,它通过键连接到帐户表(在帐户中,此列称为用户)
从这些 ID(已列出拍卖物品的用户)中,我需要找到他们的帐户余额。这也在账户表中。余额包含在名为 operation_amount 的列中。我还有另一列称为操作类型,它描述用户是否有正余额或负余额。例如,如果操作类型 = 1,则他的余额为负,而如果操作类型 = 2,则他的余额为正。
现在我有另一张桌子叫做tmpinvoice
其中有一列称为金额。这显示了用户需要向网站管理员支付多少费用。
鉴于此,我需要计算他总共需要支付多少钱。例如,如果用户有 200 美元的余额,我需要根据operation_type
.
所以我想查询 Do this only for record 在哪里
SELECT u.id AS id_user, u.nick,
CASE ac.operation_type WHEN 1 THEN ac.operation_amount - tm.amount
WHEN 2 THEN ac.operation_amount + tm.amount
ELSE 'N/A' END AS `fee`
FROM auctionbg_search.accounts AS ac
LEFT JOIN auctionbg_search.users AS u ON TRUE
AND u.id = ac.user
LEFT JOIN auctionbg_search.auctions AS a ON TRUE
AND a.id = ac.auction
LEFT JOIN auctionbg_search.tmpinvoice AS tm ON TRUE
WHERE TRUE
AND tm.amount = ac.operation_amount
这是我收到的结果
http://gyazo.com/3d7e7f52ee14d21cc8c8d33b6bbc479a http://gyazo.com/3d7e7f52ee14d21cc8c8d33b6bbc479a
是的,但是这仅计算列中 1 个值的“费用”,如果用户有多个值怎么办
喜欢这个用户:
http://gyazo.com/c3bdb29fa235044ab888dc0385bbcdbd http://gyazo.com/c3bdb29fa235044ab888dc0385bbcdbd
我需要根据给定用户的操作量计算总金额并删除tmpinvoice
从该总额中,
我的一个朋友告诉我使用
IF(SUM(ac.operation_amount), IS NULL , 0, sum(ac.operation_amount)
并用 + 和 - 连接两种情况的 2 个时间帐户(表)
+ 加入 1 次,- 加入 2 次
但我不知道会是什么样子:)