SELECT
ID AS Employee_Name,
department AS Employee_Department,
business_unit AS Employee_Business,
SUM(hours_used) Employee_Hours
FROM
TableX
WHERE
Day_Used BETWEEN 04/01/2014 AND 04/30/2014
GROUP BY
department
这是我当前的SQL语句,我想做的是从数据库中获取输出,但是我没有成功,也许你们可以指出原因。
目标是按部门总计所有员工小时数,并在给定日期之间按部门将其分组。我知道我的陈述目前不会显示该信息,我目前只是想弄清楚为什么我无法获得任何输出。
谢谢你的时间!
编辑:这是一个更简单的测试查询,可与SUM(hours_used)正常工作。
SELECT
ID AS Employee_Name,
SUM(hours_used) AS Employee_Hours
FROM
TableX
WHERE
Day_Used BETWEEN 04/01/2014 AND 04/30/2014
GROUP BY
ID
非常感谢您的反馈!到目前为止,这就是我原来的SQL问题。我只需要弄清楚如何按部门将其计算为SUM(hours_used)。 ( IE: Ted的会计时间为15个小时,companyX的时间为10个小时)
SELECT
ID AS Employee_Name,
department AS Employee_Department,
business_unit AS Employee_Business,
SUM(hours_used) AS Employee_Hours
FROM
TableX
WHERE
Day_Used BETWEEN '04/01/2014' AND '04/30/2014'
GROUP BY
ID, department, business_unit, hours_used
佩奇无意中解决了我的最后一个问题!我只需要删除GROUP BY中使用的hours_us和所有显示的内容!我要对所有帮助解决我的问题的人表示巨大的感谢,非常感谢!!!
最佳答案
您没有将所有字段都包含在聚合函数或group by语句中。
SELECT
ID AS Employee_Name,
department AS Employee_Department,
business_unit AS Employee_Business,
SUM(hours_used) Employee_Hours
FROM
TableX
WHERE
Day_Used BETWEEN '04/01/2014' AND '04/30/2014'
GROUP BY
ID,department,business_unit
将其他列添加为聚合(SUM, COUNT, ETC)或添加到GROUP BY的原因是因为如何查看数据。
说你有下表
ID intValue Color
1 1 Blue
2 2 Blue
3 5 Green
4 10 Red
5 15 Red
6 5 Blue
我想按颜色获取所有
intValue
的总和。我首先要确保选择两个列
SELECT intValue, Color FROM table1
现在,由于我想要intValue的总和,因此我将添加聚合函数
SELECT SUM(intValue), Color FROM table1
现在,您遇到的问题在这里。无需告诉DBMS您要分组的内容(此示例中的颜色),它将如何知道?通过添加一个组,我告诉我我希望将所有intValue的
SUM
分组在Color
上。SELECT SUM(intValue), Color FROM table
通过不对所有列进行汇总或分组,DBMS不知道如何处理查询。
关于php - SQL语句未产生任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23664100/