2011-06-08 48 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

相关问题