使用复杂的mysql查询时,python没有返回正确的值
我试图使用python3从mysql数据库获取结果,但在检索值时遇到了一些问题 MySQL表:使用复杂的mysql查询时,python没有返回正确的值,python,mysql,python-3.x,Python,Mysql,Python 3.x,我试图使用python3从mysql数据库获取结果,但在检索值时遇到了一些问题 MySQL表: Stock Date Price GOOG 2012-05-20 402 GOOG 2012-05-21 432 APPL 2012-05-20 553 APPL 2012-05-21 590 FB 2012-05-20 40 FB 2012-05-
Stock Date Price
GOOG 2012-05-20 402
GOOG 2012-05-21 432
APPL 2012-05-20 553
APPL 2012-05-21 590
FB 2012-05-20 40
FB 2012-05-21 34
以下是MySQL中的预期结果
Stock Date Price Change
GOOG 2012-05-21 30
APPL 2012-05-21 37
FB 2012-05-21 -6
我使用以下MySQL获得上述预期结果中提到的结果:
SELECT t1.stock,
t1.date AS CurrentDate,
oldDate.date AS OldDate,
( t1.price - oldDate.price ) AS PriceChange
FROM mp_stocktable t1
JOIN (SELECT t2.stock,
t2.date AS date1,
(SELECT Max(t3.date)
FROM mp_stocktable t3
WHERE t3.date < t2.date
AND t3.stock = t2.stock
GROUP BY t3.stock) AS date2
FROM mp_stocktable t2) AS StockDates
ON StockDates.stock = t1.stock
AND StockDates.date1 = t1.date
JOIN mp_stocktable oldDate
ON oldDate.stock = t1.stock
AND oldDate.date = StockDates.date2
我做错了什么
我也尝试过这样的for循环
for stock, currentdate, olddate, calcStockBalance in curs:
pprint.pprint(stock, currentdate, olddate, calcStockBalance)
return stock, currentdate, olddate, calcStockBalance
我也会犯同样的错误
任何指导都将不胜感激。我在这一点上被卡住了。你只有一个小的打字错误 更改此行:
"WHERE t1.stock = %s",(Stock,))
"WHERE t1.stock = %s"%(Stock,))
关于这一行:
"WHERE t1.stock = %s",(Stock,))
"WHERE t1.stock = %s"%(Stock,))
然后它应该可以工作。请发布完整的错误回溯。这就是我在控制台中得到的所有信息“需要一个类似字节的对象,而不是“元组”,看起来查询确实可以正常执行,但我得到的值是某种对象,错误在哪一行?错误出现在第pprint行。pprint(calcStockBalance)谢谢,下面是我的回答其中t1.stock='%s'(stock,)