我有以下一段我一直在处理的代码,我只能为“输入”表的第一行做这个技巧。我知道嵌套循环上的两个游标之间显然没有关系,但是我尝试了嵌套的 while-for 循环并获得了相同的结果。我正在使用 python 3.4。
这个想法是将表输入中的行与表可比较表中的行进行比较,如果公式给出的结果小于 5,则打印给定表的对应 ID(行 [0] 和行 x [0])和结果新的不同表中的公式称为输出。问题是它只适用于输入表的第一条记录。
db_connection = pypyodbc.connect(connection_str)
db_connection2 = pypyodbc.connect(connection_str)
db_connection3 = pypyodbc.connect(connection_str)
db_cursor = db_connection.cursor()
db_cursor2 = db_connection2.cursor()
db_cursor3 = db_connection3.cursor()
db_cursor.execute("SELECT * FROM input")
db_cursor2.execute("SELECT * FROM comparetable")
for row in db_cursor:
for rowx in db_cursor2:
idoriginal = row[0]
idcomparable = rowx[0]
result = formula(float(row[1]), float(row[2]), float(rowx[1]), float(rowx[2]))
if result < 5:
db_cursor3.execute("INSERT INTO output (id, idcomparable, result) VALUES (?, ?, ?)",(idoriginal,
idcomparable, result))
db_cursor3.commit()
有任何想法吗?希望是一件愚蠢的事情。我已经检查了这篇文章,但我仍然不知道如何解决它。