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
2009-02-05 22:02:30
+4
A:
<Query>
<OrderBy>
<FieldRef Name="particularcolumn" Ascending="FALSE" />
</OrderBy>
</Query>
Brian Bolton
2009-02-06 16:15:18
Don't forget to set RowLimit on the query.
etc
2010-06-03 15:41:02
+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
2009-08-12 09:49:02