【发布时间】:2021-06-03 08:00:52
【问题描述】:
我想在 sql 表中检查一些条件(逐行),如果给定条件,则使用值更新该行中的特定列。
表格如下所示:
sql_instruction = """
CREATE TABLE IF NOT EXISTS weather (
"Value1" REAL,
"Data1" REAL,
"Param1" REAL,
"Data2" REAL,
"Param2" REAL,
"Data3" REAL,
"Param3" REAL,
"TotalParam" REAL,
"MAX" REAL,
"MIN" REAL,
"startdate" REAL,
"enddate" REAL
); """
cursor.execute(sql_instruction)
connection.commit()
我想检索 TotalParam = 0 的行的“结束日期”,用另一个表中的值计算 MAX 和 MIN(没问题),计算一些其他的东西,然后更新计算的输出Param1、Param2、Param3 和 TotalParam = Param1+Param2+Param3
我的方法(对于 MAX)是:
cursor.execute("SELECT COUNT(*) FROM weather")
lenght_table = cursor.fetchone()[0]
print('lenght of table: 'lenght_table)
for t in lenght_table:
cursor.execute("SELECT enddate100 FROM weather WHERE TotalParam = 0 AND rowid BETWEEN ? AND ?", ([t-1], [t]))
intermed_preddate100 = cursor.fetchone()[0]
intermed_preddate100 = datetime.datetime.strptime(intermed_preddate100, dformat)
cursor.execute("SELECT MAX(close) from weatherdata WHERE Date BETWEEN ? AND ? ORDER BY Date", (intermed_preddate100, ldate_reg))
compare_max_reg100 = cursor.fetchone()[0]
compare_max_reg100 = float(compare_max_reg100)
我知道这对检索部分不起作用,但也许你们中的任何人都知道如何克服我一周以来一直试图解决的这个障碍......
提前谢谢你!
【问题讨论】: