我正在尝试创建一个可以计算Grouped BY USER总时间的SQL查询。
例如:如果John Smith在30分钟内完成一项工作,而在45分钟内完成另一项工作,则在我的数据库中创建两条记录。我需要一个显示
的结果USER Time Worked Total Date
John Smith 75 XX/XX/XXXX
我拥有的就是这个。
USER Time Worked Total Date
John Smith 45 XX/XX/XXXX
John Smith 30 XX/XX/XXXX
我可以计算每个工作完成的分钟数,但不计算总数 查询代码:
SELECT DISTINCT
Shipping_Table.Employee,
Shipping_Table.Date,
DateDiff("n",Shipping_Table.Start_Time,Shipping_Table.End_Time) AS MinutesWorked
FROM Shipping_Table, Employees
WHERE Shipping_Table.Date=[Forms]![Time Query]![DateCalc]
我正在使用表单,因此USER可以选择一个日期并检查他的员工工作了多少小时。设置数据库表的方式是时间条目是日期/时间变量。
答案 0 :(得分:2)
你关闭...只需将你的会议记录包装在Sum()函数中并添加一个分组,并且通过分组,你不需要这个分支。
SELECT Shipping_Table.Employee, Shipping_Table.Date,
suM(DateDiff("n",Shipping_Table.Start_Time,Shipping_Table.End_Time)) AS MinutesWorked
FROM Shipping_Table, Employees
WHERE Shipping_Table.Date=[Forms]![Time Query]![DateCalc]
GROUP BY Shipping_Table.Employee, Shipping_Table.Date
注意:您的加入缺少shipping_table和员工之间的关系,这会导致笛卡尔产品导致意外结果。
你应该真正定义表格如何与彼此相关(可能在employeeID和/或日期)