3 回答
TA贡献1780条经验 获得超1个赞
如果您只想显示购买订单,您只需要select通过获取所有shares为正的行来过滤查询
trades = db.execute("
SELECT * FROM transactions
WHERE user_id = :user_id AND shares > 0
ORDER BY transaction_id ASC",
user_id=session["user_id"]
)
但是,如果您想显示每个股票/品种的总持有量,您可以使用group by子句并对shares列求和。
holdings = db.execute("
SELECT id, symbol, SUM(shares)
FROM transactions
WHERE user_id = :user_id
AND SUM(shares) > 0 -- Edit: Added this so it will only show stocks you own
GROUP BY symbol
ORDER BY transaction_id ASC",
user_id=session["user_id"]
)
旁注:我相信id你的第二个select查询是错误的,你的意思是user_id(在WHERE id = :user_id部分)。
TA贡献1794条经验 获得超8个赞
你不能只是:
SELECT * FROM transactions WHERE id = :user_id and shares > 0 ORDER BY transaction_id ASC
获得他们拥有的股份,然后shares < 0
获得他们出售的股份?
TA贡献1844条经验 获得超8个赞
添加回答
举报