query example sharepoint moss caml

sharepoint - example - Consulta MAX usando CAML



caml query example (4)

Esto se puede hacer ordenando por este campo de forma descendente y tomando el primer elemento de la colección devuelto.

Quiero seleccionar un elemento de la lista de Sharepoint que tenga el valor Máximo para una columna en particular. ¿Cómo puedo hacer esto usando consultas CAML?


<Query> <OrderBy> <FieldRef Name="particularcolumn" Ascending="FALSE" /> </OrderBy> </Query>


La siguiente consulta CAML devolverá el valor máximo para una columna determinada:

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;


Usando el modelo de objetos del cliente, así es como estoy recuperando el ID máximo de una lista.

using (ClientContext clientContext = new ClientContext("https://sharepointed.com")) { clientContext.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; oWeb = clientContext.Web; List myList= oWeb.Lists.GetByTitle("MyList"); CamlQuery camlQuery = new CamlQuery(); camlQuery.ViewXml = ("<View><Query> <OrderBy> <FieldRef Name=''ID'' Ascending=''False'' /> </OrderBy> </Query> <RowLimit>1</RowLimit> </View>"); Microsoft.SharePoint.Client.ListItemCollection listItems = myList.GetItems(camlQuery); clientContext.Load(listItems); clientContext.ExecuteQuery(); }