2012-10-18 92 views
1

我正在使用将多个表(4个INNER JOINS和一个OUTER LEFT JOIN)捆绑在一起的遗留数据库;由于这一点以及这些表格如何连接在一起,整合数据确实很难。我已经得到这么多了:合并类似数据的列

+---------------------------------------------------------------------------+ 
| EmployeeName | HireDate | Title | Mandatory30 | Mandatory90 | MandatoryPA | 
+---------------------------------------------------------------------------+ 
| Stewart, P. | 1/1/01 | CO | 1/1/02  | NULL  | NULL  | 
| Stewart, P. | 1/1/01 | CO | NULL  | 1/2/12  | NULL  | 
| Frakes, J. | 5/5/05 | XO | 5/5/05  | NULL  | NULL  | 
| Frakes, J. | 5/5/05 | XO | NULL  | 5/6/05  | NULL  | 
+---------------------------------------------------------------------------+ 

我该如何将它整合到更接近以下的东西?

+---------------------------------------------------------------------------+ 
| EmployeeName | HireDate | Title | Mandatory30 | Mandatory90 | MandatoryPA | 
+---------------------------------------------------------------------------+ 
| Stewart, P. | 1/1/01 | CO | 1/1/02  | 1/2/12  | NULL  | 
| Frakes, J. | 5/5/05 | XO | 5/5/05  | 5/6/05  | NULL  | 
+---------------------------------------------------------------------------+ 

实际上有5个这些MandatoryN字段,但希望这不会在解决方案中产生太大的差异。

+0

如果您对Stewart,P两行的Mandatory30有价值,该怎么办? – Diego

回答

2

尝试这样:

SELECT EMPLOYEENAME, 
     HIREDATE, 
     TITLE, 
     Max(MANDATORY30) AS Mandatory30, 
     Max(MANDATORY90) AS Mandatory90, 
     Max(MANDATORYPA) AS MandatoryPA 
    FROM TABLE 
GROUP BY EMPLOYEENAME, 
      HIREDATE, 
      TITLE 

,只要你想/需要您可以添加尽可能多的领域。

+1

这让我很尴尬,我没有想到这一点,我不知道为什么,因为我已经多次使用MAX()来试图弄清楚它。谢谢! - 我还不能接受答案,但我会离开这个标签,一旦SO让我这样做。 –