结果总和Python SQL查询

时间:2018-03-19 19:59:49

标签: python sql python-3.x

当前代码:

 import pyodbc

connection = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

if connection:
        print("Yes we connected\n")

cur = connection.cursor()

cur.execute(SELECT cost1 FROM tbl)

data = cur.fetchall()

for row in data:
        print(row)

我承认我几乎不知道我在python中做了什么,而且我不久前被一个项目打了个耳机,那是ASA-昨天。我需要能够从SQL查询中获取结果并将它们相加。或者将它们存储在变量中,以便我可以在等式中回调它们。

结果是: 10, 431, 543, 1268, 1207

预期结果 3459

我非常乐意提供更多信息,我将暂时继续研究。

3 个答案:

答案 0 :(得分:2)

如果您只是在总和之后而不是单个数字,那么最简单的方法是在SQL中执行此操作:

query = 'select sum(cost1) from tbl'

如果你想要个别号码那么。:

cur.execute(SELECT cost1 FROM tbl)

data = cur.fetchall()
tot = 0
for row in data:
        print(row)
        tot += row[0]
print(tot)

答案 1 :(得分:1)

您的SQL查询应修改为SELECT sum(cost1) FROM tbl

或者你可以在python中得到结果,并总结它们...... 否则你只是在cost1

列中得到一个值列表

或在python中你可以这样做:

import pyodbc

connection = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

if connection:
        print("Yes we connected\n")

cur = connection.cursor()

cur.execute(SELECT cost1 FROM tbl)

data = cur.fetchall()
sum = 0
for row in data:
        sum = sum + row
print(sum)

答案 2 :(得分:0)

您无需逐行添加:

import pyodbc
connection = pyodbc.connect('DRIVER={ODBC Driver 13 for SQLServer};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

if connection:
    print("Yes we connected\n")

cur = connection.cursor()
cur.execute('SELECT sum(cost1) FROM tbl;')
x=cur.fetchone()[0]
print(x) # x will hold the value of the sum

祝你有美好的一天。