Advertisement
airton-junior

Exercício de SOQL

Mar 22nd, 2023 (edited)
629
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.33 KB | None | 0 0
  1. /*
  2. Construa uma classe com um método estático que retorne um map com os ids das contas (mães) das oportunidades (filhas) e também retorne as médias dos montantes(Amount) dessas oportunidades dessas contas, a partir da entrada de dois parâmetros para o métodos, sendo estes o range desejado dos valores dessas médias, ou seja, o primeiro parâmetro deverá ser o valor mínimo do range das médias e o segundo parâmetro deverá ser o valor máximo do rage das médias.
  3. Utilize a busca agregada, sumarizada pela média, utilizando operador lógico para o estabelecimento do range na query que será utilizada.
  4. No Anonymous, desejamos que sejam exibidos os nomes das contas e a média de cada uma, no system.debug(), com uma frase do tipo: A média dos amounts das oportunidades da conta XXXXX é de R$YYYY.
  5. */
  6.  
  7. public with sharing class ClasseSumarizada {
  8.  
  9.     public static Map<Id, Decimal> retornaMediaRange(Decimal min, Decimal max){
  10.         List<AggregateResult> listAggr = [SELECT AccountId, AVG(Amount) FROM Opportunity o GROUP BY
  11.             AccountId HAVING AVG(Amount) >= :min AND AVG(Amount) <= :max];
  12.         Map<Id, Decimal> mapa = new Map<Id, Decimal>();
  13.         for(AggregateResult agr:listAggr){
  14.            
  15.             mapa.put((Id)agr.get('AccountId'), (Decimal)agr.get('expr0'));
  16.         }
  17.         return mapa;
  18.     }
  19.    
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement