我有两个不同的表,雇员和薪水,工资表有多个重复的id在上面,我的问题是我如何组合员工和工资表,并删除它的副本,但我希望显示该雇员的最大工资。
雇员表

薪金表

发布于 2016-01-23 10:53:17
基于salaries表(from_date & to_date)的定义,它是一个缓慢变化维数。您的数据可能如下所示:
Emp_no salary from_date to_date
22 14000 2007-01-01 2008-03-31 -- or 2008-04-01
22 16000 2008-04-01 2010-12-31 -- or 2011-01-01
22 18000 2011-01-01 9999-12-31 -- or NULL在这种情况下,您不需要MAX薪资,而是当前/最新的薪资。
在SCD中,to_date通常设置为9999-12-31、3999-12-31或NULL之类的最大日期。若要获得当前薪资,请使用以下条件:
WHERE to_date IS NULL
or
WHERE to_date = DATE '9999-12-31' -- or whatever your max date is
or
WHERE CURRENT_DATE BETWEEN from_date AND to_date在任何时间点获得工资:
WHERE whatever_date_you_want BETWEEN from_date AND to_date发布于 2016-01-23 09:07:46
不知道你想要什么。
SELECT MAX(SALARY) FROM EMPLOYEE LEFT JOIN SALARY ON EMPLOYEE.ID=SALARY.ID GROUP BY EMPLOYEE.IDhttps://stackoverflow.com/questions/34961540
复制相似问题