合并了2个不同的结构表并删除重复

时间:2016-01-23 08:56:47

标签: mysql sql

我有两个不同的员工和工资薪水表有多个重复的ID我的问题是我如何结合员工和工资表并删除其副本但我希望显示该员工的最高薪水。 / p>

员工表 enter image description here

薪金表 enter image description here

3 个答案:

答案 0 :(得分:1)

你需要这样的东西。我创建了一个带有必要列的小提琴演示。

var employees =
    [
      {"firstName":"John", "lastName":"Doe"},
      {"firstName":"Anna", "lastName":"Smith"},
      {"firstName":"Peter", "lastName":"Jones"}
    ]

for (var i = 0; i < employees.length; i++)
{
    var new_p = document.createElement("p");

    new_p.textContent = employees[i].firstName + " " + employees[i].lastName;

    document.body.appendChild(new_p);
}

请参阅此处的小提琴演示

http://sqlfiddle.com/#!9/b5b67/5

答案 1 :(得分:1)

根据salaries表格(from_date&amp; to_date)的定义,它是Slowly Changing Dimension。您的数据可能如下所示:

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之类的最长日期。要获得当前薪水,请使用以下条件:

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

答案 2 :(得分:0)

不确定你想要什么。

DataMatrix