Python sqlite3提供的绑定数量不正确

Python sqlite3提供的绑定数量不正确,python,sql,python-3.x,sqlite,Python,Sql,Python 3.x,Sqlite,我的查询尝试每月检索输入请求的特定产品的销售量。当我提供输入时,错误中提供的绑定数是title变量字符串的长度 title = input("Enter column to search") import sqlite3 sql = """SELECT SUM(sub.sales) as total_sales, strftime("%m-%Y", sub.[orderDate]) as 'month-year' FROM (S

我的查询尝试每月检索输入请求的特定产品的销售量。当我提供输入时,错误中提供的绑定数是title变量字符串的长度

title = input("Enter column to search")
import sqlite3

sql = """SELECT SUM(sub.sales) as total_sales,
            strftime("%m-%Y", sub.[orderDate]) as 'month-year'
        FROM 
            (SELECT [orderDate], Espresso AS sales, 'Espresso' as item
            FROM groupedSales

            UNION ALL 

            SELECT [orderDate], Espresso AS sales, 'Espresso' as item
            FROM groupedSales

            UNION ALL 

            SELECT [orderDate], Mocha AS sales, 'Mocha' as item
            FROM groupedSales

            ) AS sub
        WHERE sub.[item] = ?
        GROUP BY strftime("%m-%Y", sub.[orderDate])
        """

conn=sqlite3.connect("system.db")
cur=conn.cursor()
aggregateIndividuals = cur.execute(sql, title,).fetchall()

for values in aggregateIndividuals:
    print(values)
输入列以搜索浓缩咖啡

File "C:/Users/stecd/Desktop/NEA - Copy/UNIONtest.py", line 27, in <module>
    aggregateIndividuals = cur.execute(sql, title,).fetchall()
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 8 supplied.
文件“C:/Users/stecd/Desktop/NEA-Copy/UNIONtest.py”,第27行,在
aggregateIndividuals=cur.execute(sql,title,).fetchall()
sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,提供了8个。

Try:
aggregateIndividuals=cur.execute(sql,(title,).fetchall()
您的sql语法看起来像sql Server或MS Access。为什么要使用方括号表示法?@TimBiegeleisen-sqlite接受这种和MySQL样式的倒勾,以及引用标识符的常用双引号。当然,在这个查询中不需要引用。@Shawn听起来SQLite是想取悦所有人。有点像政治家:-)我有没有办法做到这一点:“选择[orderDate],(?)作为销售,(?“作为groupedSales中的商品”,而不必为每个产品指定如此多的选择,只需将输入值传递进去?