I am querying the Newvalue/Createddate from the History object in Field tracking.
SELECT ID, (SELECT Id, Field, OldValue, NewValue
FROM Histories where field ='Status'
AND Createddate > LAST_QUARTER
AND Field = 'CustomField__c'
AND NewValue = 'SOMETHING')
FROM CustomObject__c
Requirement : Need to find out what was the value on a particular date. e.g What was the value on 30th June 2015 or check whather value!='XYZ' on 30th June 2015.
I tried with createddated , but it didn't help the requirement.
Is this feasible?
Update : Here Role is a related object to Account . Hence , multiple records will be there . So fetching all the latest values from each record. And need to check if any values is NOT Lapsed , then add to a List . Please help me out in the synatx/code.
List<Role__c> pc = [SELECT Status__c , ( SELECT NewValue , createddate FROM Histories WHERE Field ='Status' ORDER BY CreatedDate DESC LIMIT 1) FROM Role__c where Accountid= :AccountList];
List<String> ActiveRole = new List<String>();
for (Role__c pl : pc) {
if(pc.Histories.isEmpty())
{
if(pl.status__!='Lapsed')
{
ActiveRole.add(pl.status__c);
}
else
{
if(pl.Histories[0].NewValue!='Lapsed')
{
ActiveRole.add(pl.Histories[0].NewValue);
}
}
}