Loading

Comment puis-je agréger (SUM) le montant ?

Date de publication: Jan 28, 2026
Description

J'ai écrit le code suivant pour obtenir un montant total, mais il renvoie une erreur.

Code
TotalCharges__c = [SELECT sum(EntryCharge__c) FROM AllocationTable__c WHERE id=:id];

TotalCharges__c: currency
EntryCharge__c: expression (currency)

Error
Save error: Illegal assignment from LIST<AggregateResult> to Decimal CalculateCharge.trigger

Résolution

Pour utiliser une fonction d'agrégation, utilisez le type AggregateResult. De plus, il est nécessaire d'utiliser la méthode valueof de chaque type pour convertir le type, car les données de résultat d'agrégation ne peuvent pas être stockées directement dans une variable décimale.

Pour plus de détails, reportez-vous à l'exemple ci-dessous :

*******************************
AggregateResult ar = [SELECT sum(EntryCharge__c) s FROM AllocationTable__c WHERE id=:id];  
TotalCharges__c = decimal.Valueof(string.valueof(ar.get('s')));  
system.debug('data = '+String.valueof(j.TotalCharges__c));  
******************************* 

Pour la conversion de type String, reportez-vous à cette page.

 

Numéro d’article de la base de connaissances

000385401

 
Chargement
Salesforce Help | Article