2011-06-08 82 views
1

第一個表:狀態如何獲取最新日期記錄加入兩張表?

ID    Status  date 
1    PRO   10-02-2010 
1    LWR   8-06-2011 
1    Active  10-06-2011 
2    PRO   10-02-2010 
2    LWR   8-06-2011 
2    PRO  10-06-2011 
3    PRO   10-02-2010 
3    LWR   8-06-2011 
3    APS  10-06-2011 

二田部:個人資料

ID    NAME 
1     Suba 
2     Jhon 
3     Felix 

我期待輸出

1   Suba  Active  10-06-2011 
2   Jhon  PRO   10-06-2011 
3   Felix  APS   10-06-2011 

請解釋如何能得到最大的日期值記錄

+0

從您的示例中,不清楚您是否需要選擇具有最大日期的任何*行或具有'狀態='活動''的行。 – 2011-06-08 04:39:11

+0

我想知道相應的最高日期或最新日期的狀態。以其他方式..什麼是最大日期,然後調出相應的狀態組編號 – Suba 2011-06-14 03:26:42

回答

5

用途:

SELECT a.* 
    FROM YOUR_TABLE a 
    JOIN (SELECT t.id, 
       MAX(t.date) AS max_date 
      FROM YOUR_TABLE t 
     GROUP BY t.id) b ON b.id = a.id 
         AND b.max_date = a.date 
+0

笨拙 - 看到其他答案 – Bohemian 2011-06-08 04:12:31

+1

@Bohemian:它不笨拙。 「其他答案」(Joel's,我假設)只是對不太明確的問題有不同的理解。 – 2011-06-08 04:44:02

+0

@Bohemian:「笨拙」不是建設性的批評,更不值得讚揚。這是OP的要求,如果有必要,他們應該與誰澄清。 – 2011-06-08 22:48:43

2

您錯過了一個表格。我只看到一個,你不需要加入任何東西來獲得你想要的結果。

SELECT ID, Status, MAX(date) 
FROM `table` 
WHERE status='active' /* optional */ 
GROUP BY ID, Status 

此外,您顯示的日期不匹配sql服務器通常格式日期的方式。你確定這是一個日期時間列嗎?如果不是,那應該是。在做其他事之前解決這個問題。

0
SELECT *, max(date) as max_date FROM `table` order by max_date desc; 
+0

請......任何一個人回答我.... – Suba 2011-06-14 06:14:41