首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >组合两个不同结构的表并删除重复项

组合两个不同结构的表并删除重复项
EN

Stack Overflow用户
提问于 2016-01-23 08:56:46
回答 2查看 30关注 0票数 0

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

雇员表

薪金表

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-23 10:53:17

基于salaries表(from_date & to_date)的定义,它是一个缓慢变化维数。您的数据可能如下所示:

代码语言:javascript
运行
复制
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-313999-12-31NULL之类的最大日期。若要获得当前薪资,请使用以下条件:

代码语言:javascript
运行
复制
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

在任何时间点获得工资:

代码语言:javascript
运行
复制
WHERE whatever_date_you_want BETWEEN from_date AND to_date
票数 1
EN

Stack Overflow用户

发布于 2016-01-23 09:07:46

不知道你想要什么。

代码语言:javascript
运行
复制
SELECT MAX(SALARY) FROM EMPLOYEE LEFT JOIN SALARY ON EMPLOYEE.ID=SALARY.ID GROUP BY EMPLOYEE.ID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34961540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档