私が取り組んでいる次のコードがありますが、「入力」テーブルの最初の行に対してのみトリックを行うことができます。ネストされたループの 2 つのカーソル間に関係がないことは明らかですが、ネストされた while-for ループを試してみたところ、同じ結果が得られました。私はpython 3.4を使用しています。
テーブル入力の行をテーブル comparetable の行と比較し、式によって得られた結果が 5 未満の場合は、指定されたテーブルの対応 ID (row[0] & rowx[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()
何か案は?希望は愚かなことです。私はすでにこの投稿をチェックしましたが、まだ解決方法がわかりません。