我的目标是在2列上计算一些数学运算,并在3列上用结果更新数据库。我正在为数据库使用SQLITE3。目前,数学运算很简单,因此设法获取下面的SQL UPDATE函数来更新数据库的40000行。随着数学变得越来越复杂,我的目标是在查询两列的数据库并随后更新第三行后,在python中计算数学。更新第三列的最佳方法是什么?如果遍历所有行,则SET函数倾向于使用最后一个循环的值来更新整列。非常感谢...
用于更新ebitev和capreturn列的当前SQL代码,只需对早期列的输入进行简单的数学运算即可。
db = SQL("sqlite:///formula.db")
inventories=db.execute("SELECT ticker, ebit, ev, ppnenet, fcf, workingcapital FROM equity")
"""liste=[]"""
for inventory in inventories:
ebit = inventory["ebit"]
ev = inventory["ev"]
ppnenet = inventory["ppnenet"]
workingcapital = inventory["workingcapital"]
fcf = inventory["fcf"]
if ev == 'NULL':
db.execute("UPDATE equity SET ebitev='NULL'")
else:
ebitev = ebit / ev
"""liste.append(ebitev)"""
db.execute("UPDATE equity SET ebitev=ebit/ev")
if ppnenet == 'NULL' or workingcapital == 'NULL':
db.execute("UPDATE equity SET capreturn='NULL'")
else:
db.execute("UPDATE equity SET capreturn=ebit/(ppnenet+workingcapital)")
if fcf == 'NULL':
db.execute("UPDATE equity SET fcfyield='NULL'")
elif ev == 'NULL':
db.execute("UPDATE equity SET fcfyield='NULL'")
else:
db.execute("UPDATE equity SET fcfyield=fcf/ev")