sqlsql-serversql-server-2005t-sqlaggregate

Sql Server : How to use an aggregate function like MAX in a WHERE clause


I want get the maximum value for this record. Please help me:

SELECT rest.field1 
    FROM mastertable AS m
    INNER JOIN  (
        SELECT t1.field1 field1, 
               t2.field2
            FROM table1 AS T1 
            INNER JOIN table2 AS t2 ON t2.field = t1.field 
            WHERE t1.field3=MAX(t1.field3)
        --                  ^^^^^^^^^^^^^^  Help me here.
    ) AS rest ON rest.field1 = m.field

Solution

  • You could use a sub query...

    WHERE t1.field3 = (SELECT MAX(st1.field3) FROM table1 AS st1)
    

    But I would actually move this out of the where clause and into the join statement, as an AND for the ON clause.