views:

1171

answers:

3

I want to select a sharepoint list item which has the Maximum value for a particular column. How can I do this using CAML queries?

A: 

This can be done ordering by this field in descending way and taking the first element of the collection returned.

jaloplo
+4  A: 
<Query>
    <OrderBy>
            <FieldRef Name="particularcolumn" Ascending="FALSE" />
    </OrderBy>
</Query>
Brian Bolton
Don't forget to set RowLimit on the query.
etc
+3  A: 

The following CAML query would return the maximum value for a given column:

var maxValue;

try
{
    using (SPSite objSite = new SPSite(sSiteUrl))
    {
     using (SPWeb objWeb = objSite.OpenWeb())
     {
      SPList objList = objWeb.Lists[sListName];

      SPQuery objQuery = new SPQuery();
      objQuery.Query = "<OrderBy><FieldRef Name='ColumnName' Ascending='False' /></OrderBy><RowLimit>1</RowLimit>";
      objQuery.Folder = objList.RootFolder;

      // Execute the query against the list
      SPListItemCollection colItems = objList.GetItems(objQuery);

      if (colItems.Count > 0)
      {
       maxValue = (<Insert Appropriate Cast>) colItems[0];
      }
     }
    }
}
catch (Exception ex)
{
    ...
}

return maxValue;
MagicAndi