首页 > 解决方案 > SQLite 从列列表中获取 TOTAL?

问题描述

我试图总结我的列中的总值。我有 5 列,我可以通过以下方式获得 1 乘 1 的总值:

import sqlite3
list2 = ['Food', 'Transport', 'Insurance', 'Installments', 'Others']

def expensedata():
    con = sqlite3.connect("expense.db")
    c = con.cursor()
    c.execute("CREATE TABLE IF NOT EXISTS expense (id INTEGER PRIMARY KEY,\
     food real, transport real, insurance real, installments real, others real)")
    con.commit()
    con.close()

expensedata()



con = sqlite3.connect("expense.db")
    c = con.cursor()
    c.execute("SELECT TOTAL(food) FROM expense")
    print(c.fetchall()[0])
    con.close()

我能够得到26.0这个专栏的总数。

但是,我没有对 n 列重复此代码 n 次,而是尝试:

con = sqlite3.connect("expense.db")
    c = con.cursor()
    for i in range(len(list2)):
        c.execute("SELECT TOTAL(?) FROM expense", (list2[i],))
        print(c.fetchall()[0])
    con.close()

但输出变成(0.0,) (0.0,) (0.0,) (0.0,) (0.0,)了。

我该如何解决这个问题?谢谢

标签: pythonsqlite

解决方案


只需使用字符串格式:

c.execute("SELECT TOTAL(%s) FROM expense" % list2[i])

推荐阅读