Search code examples
sqlsql-server-2000in-subquery

Get distinct max date using SQL


I'm not sure quite how to title my question but this is what I'm trying to do:

Given pc_tmppl_tbl

pc_tmppl_attach pc_tmppl_val1    pc_tmppl_crtdt

AJC05-06    AJCINT       2005-08-15 10:32:03.790
AJC06-07    AJCINT       2006-10-17 10:02:06.570
AJC07-08    AJCINT       2007-06-13 10:44:53.573
AJC08-09    AJCINT       2008-06-27 09:51:17.290
AJC09-10    AJCINT       2009-07-20 14:26:06.270
AJC10-11    AJCINT       2010-08-26 11:54:32.777
AJC99-001   AJCINT       2005-05-30 19:30:51.623
ALPI05-06   ALPINE       2005-05-30 19:30:51.623
ALPI07-08   ALPINE       2006-12-11 13:57:09.923
ALPI07-08   ALPINE       2007-05-24 14:04:07.867
ALPI08-09   ALPINE       2008-04-30 09:49:24.140

I want it to return the max date for pc_tmppl_crtdt and its corresponding pc_tmppl_attach so

ALPI08-09   ALPINE       2008-04-30 09:49:24.140
AJC10-11    AJCINT       2010-08-26 11:54:32.777

I've been trying sub queries but haven't quite hit on the answer, any help would be much appreciated.


Solution

  • Select T.pc_tmppl_attach, T.pc_tmppl_val1, T.pc_tmppl_crtdt
    From pc_temppl_tbl As T
        Join    (
                Select pc_tmppl_val1, Max( T1.pc_tmppl_crtdt ) As MaxDateTime
                From pc_temppl_tbl As T1
                Group By T1.pc_tmppl_val1
                ) As Z
            On Z.pc_tmppl_val1 = T.pc_tmppl_val1
                And Z.MaxDateTime = T.pc_tmppl_crtdt