2012-10-18 66 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讓我這樣做。 –