我有两个桌子,一个叫tblPerformanceReview,另一个叫tblEmployee。我正在努力弄清楚每个员工被推荐多少次酌情加薪。tblPerformanceReview有一个名为酌处的专栏,它让你知道是否推荐员工加薪。如果他们被推荐,就会有一个1,如果不是,就会有一个0。我正在设法计算每名员工被推荐加薪的次数。我希望它能显示员工的名字和被推荐加薪的次数。两个表都通过字段冷IDEmployee连接。
给出错误的示例代码
SELECT tblEmployee.FirstName,COUNT(tblPerformanceReview.Discretionary)
FROM tblPerformanceReview,tblEmployee INNER JOIN
tblEmployee
ON tblPerformance.IDEmployee=tblEmployee.IDEmployee WHERE Discretionary='1'
group by IDEmployee;发布于 2020-03-02 01:25:57
我假设tblPerformance在您的查询中确实应该是tblPerformanceReview。
我相信你想:
SELECT e.IDEmployee, e.FirstName,
COUNT(pr.Discretionary)
FROM tblEmployee e LEFT JOIN
tblPerformanceReview pr
ON pr.IDEmployee = e.IDEmployee AND
pr.Discretionary = 1
GROUP BY e.IDEmployee, e.FirstName;备注:
LEFT JOIN。你的问题意味着你想要所有员工,而不仅仅是那些至少有一次酌情加薪的员工。'1'看起来像一个数字,所以我放弃了引用。如果列确实包含一个字符串,则保留string.SELECT和GROUP BY.中都包含了idEmployee。
发布于 2020-03-02 01:01:56
这样做吧:
SELECT tblEmployee.FirstName,COUNT(*)
FROM tblPerformanceReview INNER JOIN
tblEmployee
ON tblPerformance.IDEmployee=tblEmployee.IDEmployee WHERE Discretionary='1'
group by tblEmployee.FirstName;发布于 2020-03-02 01:14:43
尝试从"FROM tblPerformanceReview,tblEmployee INNER“语句中移除",tblEmployee”部分。查询的其余部分看起来是正确的。
https://stackoverflow.com/questions/60481222
复制相似问题