标签:salary 01 group 没弄 no salaries dept emp sql
我的答案:
我的想法就是先把表按照emp_no给合并起来,然后对这个新表t进行筛选最大的工资并且按照部门分组。
select t.dept_no,t.emp_no,max(t.salary) as maxSalary from (select d.dept_no,d.emp_no,s.salary from dept_emp d inner join salaries s on d.emp_no=s.emp_no where d.to_date='9999-01-01' and s.to_date='9999-01-01' ) t group by t.dept_no order by t.dept_no
可以通过的答案:
SELECT a.dept_no,b.emp_no,a.salary FROM (SELECT dept_no,MAX(salary) AS salary FROM salaries INNER JOIN dept_emp ON dept_emp.emp_no=salaries.emp_no WHERE dept_emp.to_date = '9999-01-01' AND salaries.to_date='9999-01-01' GROUP BY dept_no) AS a INNER JOIN (SELECT dept_no,dept_emp.emp_no,salary FROM dept_emp INNER JOIN salaries ON dept_emp.emp_no=salaries.emp_no WHERE dept_emp.to_date = '9999-01-01' AND salaries.to_date='9999-01-01')AS b ON a.salary=b.salary AND a.dept_no=b.dept_no ORDER BY dept_no
然后主要原因是:mysql select中只能使用group中用过的字段
否则按我原来的做法maxsala和emp——no是不一定对应的!
标签:salary,01,group,没弄,no,salaries,dept,emp,sql 来源: https://www.cnblogs.com/liuxiangyan/p/14488329.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。