合并相似数据的列

时间:2012-10-18 14:37:30

标签: sql sql-server

我正在使用遗留数据库将多个表捆绑在一起(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字段,但希望这不会对解决方案产生太大的影响。

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

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

您可以根据需要添加任意数量的字段。