SPQuery calculated fields filter does not work in SharePoint 2007/2010

2k Views Asked by At

I have a calculated field in my list and I am trying to use filter on this field. For some reason, the following query always returns all items instead of a filtered item collection:

var spQuery = new SPQuery
    {
        Query = @"<Where><Geq><FieldRef Name='Score' /><Value Type='Calculated'>10000</Value></Geq></Where><OrderBy><FieldRef Name='Modified' Ascending='True' /></OrderBy>",
        RowLimit = 200,
        ViewFields = @"<FieldRef Name='Username' />"
    };

var spList = web.Lists["Users"];

var spListItemCollection = spList.GetItems(spQuery);
3

There are 3 best solutions below

0
On

try using

spQuery.ViewFieldsOnly = true;

0
On

Try removing ViewFields section (to get all columns, also those that are needed for calculation) or set SPQUery.IncludeMandatoryColumns

1
On

Remove the query element from your SPQuery. See syntax here