function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion

Using Aggregate function in apex class.

Hi, im new to force platform.i have to clarify some please help me.

I have two custom objects Opportunity_CRM__c and test__c. Lets consider Opportunity_CRM__c takes the following values,


opportunity ID          Employee ID       Amount

        1                                 1                        920

        2                                 1                        400

        3                                 1                        300

        4                                 2                        600



I have two fields in test__c namely Emploee_Id__c and Totot_count_opportunities__c. I have to populate the custom object test__c with following values,


Employee ID              Total Count Opportunities

         1                                     3

         2                                     1


i.e. i have to find the total number of opportunities with respect to each employee.


My Apex class,

global class opportunity 
    global static void totaloppcnt(Opportunity_CRM__c[] op)
            String eid;
            Integer tcount;
            test__c var = new test__c();
            for (Opportunity_CRM__c w :op)
                List<AggregateResult> groupedResults = [SELECT Employee_ID__c,COUNT(Amount__c)tntcnt FROM Opportunity_CRM__c GROUP BY Employee_ID__c];
                for (AggregateResult ar : groupedResults) 
                    eid = (String)ar.get('Employee_ID__c');
                    tcount = (Integer)ar.get('tntcnt');
                    var.Employee_ID__c = eid;
                    var.Total_Opp_Cnt__c = tcount;
                    insert var;
            catch(DmlException e) {}

Initially i gat System.DmlException: Insert failed. First exception on row 0 with id a0R90000002Hg2wEAC; first error: INVALID_FIELD_FOR_INSERT_UPDATE, cannot specify Id in an insert call: [Id] i used try and catch to overcome that error.After that insert operation is successfully done but im not getting the desired results.


My Apex trigger,

trigger oppcnttrigger on Opportunity_CRM__c (after insert,after update) 
    Opportunity_CRM__c[] p =;

Please help me..its urgent..




Your logic does not seem to be correct as you are inserting record every test__c objetc.Hence,you must be getting a new record everytime with the correct value.


You need to check if a record already exists,then update it else create a new record.


also,if you cpould explain as how these objects are realted I can make it more clear.


Hey thanks.

I cant get yout point.Can you please make it clear?

I created the custom objects Opportunity_CRM__c and test__c with required fields and I uploaded the data into Opportunity_CRM__c using dataloader.Once i upload the data,test__c must be populated with total count of opportunities for each employee.Data is uploaded into Opportunity_CRM__c and it is used for calculation.