将dabtabse文件中的信息放入列表中

时间:2017-04-07 11:34:32

标签: python-2.7 sqlite

import sqlite3

db = sqlite3.connect('newdb.db')
team_list = ['Munster', 'Leinster', 'Ulster', 'Glasgow']
cursor = db.cursor()
for i in range(len(team_list)):
    team_names = team_list[i].upper()

    searchStr = '%' + team_names + '%'
    cursor.execute('select * from tickets where Name LIKE ?', (searchStr,))

teams_points = cursor.fetchall()
print teams_points

cursor.close()
db.close()

这是我的python代码,用于显示表格中的所有数据'在newdb.db中。我有一个包含团队名称的列表,我希望能够在数据库中搜索这些团队名称并计算出售门票的信息。 picture of database

[(u'MUNSTER', 5, u'First Round'), (u'MUNSTER', 5, u'First Round'), 
(u'MUNSTER', 8, u'Second Round'), (u'MUNSTER', 10, u'Both Rounds')]
[(u'LEINSTER', 2, u'Second Round'), (u'LEINSTER', 16, u'First Round'), 
(u'LEINSTER', 5, u'Both Rounds'), (u'LEINSTER', 6, u'Both Rounds'), 
(u'LEINSTER', 3, u'First Round')]
[(u'ULSTER', 10, u'Second Round')]
[(u'GLASGOW', 4, u'First Round')]

当我运行脚本时,上面是我的输出,我希望能够将每个团队放入列表中

 team_list=['team_name', 'total first round tickets', 'second round tickets'] 


 munster_list = ['MUNSTER', '20', '18'] 
 leinster_list = ['LEINSTER','30','13'] 
 ulster_list = ['ULSTER','0','10'] 
 glasgow_list = ['GLASGOW','4','0']

然后打印列表我可以使用print munster_list

1 个答案:

答案 0 :(得分:0)

使用GROUP BY从每个组的行中获取一个输出行。使用CASE expressions仅汇总某些值:

SELECT Name,
       sum(CASE WHEN Type IN ('First Round', 'Both Rounds')
                THEN Amount
                ELSE 0
           END) AS "first round tickets",
       sum(CASE WHEN Type IN ('Second Round', 'Both Rounds')
                THEN Amount
                ELSE 0
           END) AS "second round tickets"
FROM tickets
GROUP BY Name
ORDER BY Name;