我试图解决此问题,我必须找到每个部门的位置和每个位置的员工数量(不是部门,此数据库的常见查询)
foreach (DataGridViewColumn c in dataGridView1.Columns)
{
if (c.ValueType == typeof(double))
{
c.DefaultCellStyle.Format = "C2";
c.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
}
}
这有效但这显示了每个部门的员工数量(可能重复该值)
我如何获得地点而非部门的员工数量?
编辑:查询有效,我实际上得到每个位置的员工人数,但在每个城市都有不止一个部门,所以如果在'软件'休斯顿的部门有14名员工,然后再次使用“软件”。 Sugarland的部门向我展示了14名员工,因此查询有效但不是按位置,每个部门都有效。无论如何,谢谢你的帮助,我很感激答案 0 :(得分:0)
您更接近解决方案。由于您尚未在这些表中发布其他列,例如员工ID或编号。按照你所拥有的,尝试:
SELECT E.DNO, DE.DLOCATION, count(E.DNO)
FROM DEPARTMENT D
INNER JOIN EMPLOYEE E
ON D.DNUMBER = E.DNO
INNER JOIN DEPT_LOCATIONS DE
ON DE.DNUMBER = E.DNO
GROUP BY E.DNO,DE.DLOCATION
答案 1 :(得分:0)
如果我没有错,您的查询应该按照distinct
的要求编写。
SELECT DE.DLOCATION, COUNT(distinct E.DNO) as NoOfEmps
FROM DEPARTMENT D INNER JOIN
EMPLOYEE E
ON D.DNUMBER = E.DNO INNER JOIN
DEPT_LOCATIONS DE
ON DE.DNUMBER = E.DNO
GROUP BY DE.DLOCATION;
也许你需要:
SELECT DE.DLOCATION, COUNT(*) as NoOfEmps
. . .