Python 循环使用数据做奇怪的事情

Python 循环使用数据做奇怪的事情,python,sql,loops,tkinter,Python,Sql,Loops,Tkinter,好的,我已经在这个问题上工作了大约8个小时了,我只是不知道发生了什么。因此,我正在制作的应用程序是一个时间表管理器,它使用android应用程序;我正在用python制作的桌面应用程序;还有一个MySQL数据库。桌面应用程序几乎只使用数据库上的查询。因此,当前查询供用户检查员工在两个日期之间的工作时间: query = "SELECT FirstName, LastName, StartTime, FinishTime FROM Sheets WHERE DateTesting >= '"

好的,我已经在这个问题上工作了大约8个小时了,我只是不知道发生了什么。因此,我正在制作的应用程序是一个时间表管理器,它使用android应用程序;我正在用python制作的桌面应用程序;还有一个MySQL数据库。桌面应用程序几乎只使用数据库上的查询。因此,当前查询供用户检查员工在两个日期之间的工作时间:

query = "SELECT FirstName, LastName, StartTime, FinishTime FROM Sheets WHERE DateTesting >= '"+StartDate+"' AND DateTesting <= '"+EndDate+"';"
仅供参考,它使用一个循环来循环信息。下一部分(我对此有异议)是计算每个员工完成的总小时数,但我的循环很糟糕,我正处于大脑阻塞的边缘

    for u in secondNameList:
        totalHoursPerPerson = 0
        totalMinutesPerPerson = 0    
        for item in nameList:
            if item == u:
                timeParts = [int(s) for s in tdelta.split(':')]
                totalMinutesPerPerson += timeParts[1]
                totalHoursPerPerson += timeParts[0] 
                totalHoursPerPerson += totalMinutes // 60
                minutesToTake = totalMinutes // 60
                minutesToSub = minutesToTake * 60
                totalMinutesPerPerson = totalMinutes - minutesToSub
                print(totalHoursPerPerson)
                totalsPerPerson.append(f'{item} did a total of {totalHoursPerPerson} Hours')
                print(f'{item} did a total of {totalHoursPerPerson} Hours')

    totalsPerPerson = list(set(totalsPerPerson))
    print(totalsPerPerson)
输出如下所示:

4
['Chris', 'Chris', 'Rory', 'John']
['Chris', 'Chris', 'Rory', 'John']
(('Chris', 'Gracey', '07:00', '16:30'), ('Chris', 'Gracey', '07:00', '16:30'), ('Rory', 'Gracey', '07:00', '16:30'), ('John', 'Smith', '07:00', '16:30'))
9
Chris did a total of 9 Hours
18
Chris did a total of 18 Hours
9
Chris did a total of 9 Hours
18
Chris did a total of 18 Hours
9
Rory did a total of 9 Hours
9
John did a total of 9 Hours
['John did a total of 9 Hours', 'Chris did a total of 18 Hours', 'Rory did a total of 9 Hours', 'Chris did a total of 9 Hours']
我真的不知道为什么它会显示克里斯两次。我也尝试过删除重复项,但它只是打破了它甚至更多

如果有更好的办法,我洗耳恭听


谢谢

好的,因此我更改了sql语句

这是我使用的语句:

SELECT FirstName, LastName, SEC_TO_TIME(SUM(TIME_TO_SEC(FinishTime) - TIME_TO_SEC(StartTime))) AS timediff FROM Sheets WHERE DateTesting >= '2018/5/7' AND DateTesting <= '2018/5/18' GROUP BY FirstName, LastName;
选择FirstName、LastName、SEC-TO-TIME(总和(TIME-TO-SEC(FinishTime)-TIME-TO-SEC(StartTime)))作为DateTesting>='2018/5/7'和DateTesting中的时间差
SELECT FirstName, LastName, SEC_TO_TIME(SUM(TIME_TO_SEC(FinishTime) - TIME_TO_SEC(StartTime))) AS timediff FROM Sheets WHERE DateTesting >= '2018/5/7' AND DateTesting <= '2018/5/18' GROUP BY FirstName, LastName;