SQL вычисление на двух столбцах данных и обновление третьего значения - PullRequest
0 голосов
/ 26 ноября 2018

Я собираюсь вычислить некоторую математику в 2 столбцах и обновить базу данных с ее результатами в 3 столбцах.Я использую SQLITE3 для БД.Математика в настоящее время тривиальна, поэтому удалось получить приведенную ниже функцию SQL UPDATE для обновления 40000 строк базы данных.Поскольку математика становится более сложной, я хотел бы вычислить математику в python после запроса к базе данных по двум столбцам и последующего обновления этой третьей строки.Каков наилучший способ обновить этот третий столбец?если цикл выполняется по всем строкам, функция SET стремится обновить весь столбец значением последнего цикла.Большое спасибо ...

Текущий код SQL для ОБНОВЛЕНИЯ столбцов ebitev и capreturn с простой математикой, выполненной на входе из более ранних столбцов.

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...