db.execute不返回相应的数据.尝试访问数据时出错



我有一个名为"transactions"的表。我想从那个表中得到我的列"shares",并附带一些条件。所以我做了以下事情:

available_shares = db.execute("SELECT SUM(shares) as total_shares FROM transactions WHERE id = :id and stock = :symbol GROUP BY stock",
id=session["user_id"], symbol=request.form.get("symbol"))

为了查看此代码是否正常工作,我使用了sqlite 3,并在命令行参数中键入以下内容:

SELECT SUM(shares) as total_shares FROM transactions WHERE id=8 AND stock= "AAPL" GROUP BY stock;

它返回正确的代码,即:

total_shares
0

如果"total_shares"等于0,当我想从事务表中删除一行时,问题就出现了。为了做到这一点,我做了以下(顺便说一下,它不起作用(:

if available_shares[0]["total_shares"] == 0:
db.execute("DELETE FROM transactions WHERE id=:id AND stock=:symbol", id=session["user_id"], symbol=request.form.get("symbol"))

我不明白为什么当我运行程序时,行仍然在那里,好像程序没有识别出那个条件,所以它没有删除任何内容。有人能帮帮我吗?提前谢谢!

如果我没有弄错的话,当你使用SUM(共享(时,你实际上是在把列加在一起。

假设您有以下数据:id符号#。1.FB。1.2.道。3.3.道。3.4.FB-1.

如果您选择SUM(FB的份额(,您将获得0,但它来自第1列和第4列的添加。

如果要删除列1,则可以尝试删除WHERE symbol=FB。

最新更新