我想制作一个在tkinter中显示的aggerate sql函数
我有一个产品表,我想使用aggerate sql函数来显示总价的AVG。
到目前为止我所做的:
Button(self.root,
text="Average",
command=self.avgprice).place(x=750,y=470,width=250,height=28)
这是保存aggerate sql:的函数
def avgprice(self):
with sqlite3.connect("Stock_Control.db") as db:
cursor = db.cursor()
cursor.execute("SELECT AVG(Total) FROM Product")
stock = cursor.fetchall()
totalstock = 0
messagebox.showinfo("Average Price",self.avgprice,parent=self.root)
for stock in stock:
totalstock += stock[0]
return totalstock
我得到这个错误:
弹出窗口没有弹出平均价格,但这个随机数字
我认为这可能是一个很快就能解决的问题,但我不确定。
您显示self.avgprice
,它是对函数def avgpric(self)
的引用,但您需要totalstock
-并且必须在for
-循环之后执行。
totalstock = 0
for stock in stock:
totalstock += stock[0]
messagebox.showinfo("Average Price", totalstock, parent=self.root)
Button
不能从函数中得到结果,所以return totalstock
是无用的。
但我会写得更简单(如果我以正确的方式获取结果(
def avgprice(self):
with sqlite3.connect("Stock_Control.db") as db:
cursor = db.cursor()
cursor.execute("SELECT AVG(Total) FROM Product")
average = cursor.fetchone()[0]
messagebox.showinfo("Average Price", average, parent=self.root)