Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. public with sharing class WeekSixHomework {
  2.  
  3. public static void soqlPractice() {
  4.  
  5. //1. Below is a SOQL query that should be returning the top 5 Accounts in our org based on Annual Revenue.
  6. //Something's not quite right, can you fix the query?
  7. //List<Account> topFiveAccounts = [SELECT Id, Name, AnnualRevenue FROM Account WHERE AnnualRevenue != 0];
  8.  
  9. List<Account> topFiveAccounts = [SELECT Name, AnnualRevenue FROM Account WHERE AnnualRevenue != null ORDER BY AnnualRevenue DESC LIMIT 5];
  10.  
  11. System.debug('This should be 5: ' + topFiveAccounts.size());
  12. //debug log shows 5
  13.  
  14. //2. Here is a query that is missing something. It compiles, but if you try and run this method in Anonymous
  15. //you'll get an error when the method tries to use the query results. Fix it! :)
  16.  
  17. //List<Contact> contacts = [SELECT FirstName, MailingState FROM Contact LIMIT 10];
  18.  
  19. List<Contact> contacts = [SELECT FirstName, LastName, MailingState FROM Contact LIMIT 10];
  20.  
  21. for (Contact c : contacts) {
  22. String name = c.FirstName + ' ' + c.LastName;
  23. System.debug('This should be first name & last name: ' + name);
  24. }
  25.  
  26.  
  27. //3. Can you write a SOQL query from scratch that will return the top 10 Accounts in the org, ordered by annual
  28. //revenue in decending order? Print your results in the debug log.
  29.  
  30. List<Account> topTenAccounts = [SELECT Name, AnnualRevenue FROM Account WHERE AnnualRevenue !=Null ORDER BY AnnualRevenue DESC LIMIT 10];
  31. System.debug('This should be 10: ' + topTenAccounts.size());
  32. for (Account acct : topTenAccounts) {
  33. String results = acct.Name + ' ' + acct.AnnualRevenue;
  34. System.debug('This should be names of 10 accounts: ' + results);
  35. }
  36.  
  37. //4. Can you write a SOQL query that will return all opportunities for all accounts in the topFiveAccounts list that we used
  38. //in Number 1? (topFiveAccounts) Hint: If you're stuck, look back a the code in WeekSixClassExercises, getOpenOppsForHotAccounts method
  39. // Print your results in the debug log.
  40. List<Opportunity> oppsForTopFiveAccounts = [SELECT Id, Name FROM Opportunity WHERE AccountId in:topFiveAccounts];
  41. System.debug('Opps for top 5 accounts: ' + oppsForTopFiveAccounts);
  42. }
  43.  
  44. public static void forTheLoveOfForLoops() {
  45.  
  46. //1. Take a look at the list and loop below. It's commented out since it can't run as is.
  47. // Can you replace the ?? with the number that makes sense based on the comments?
  48. // Remove the slashes and compile.
  49. // Can you add an extra counter variable so that you can print out how many times the loop ran in total?
  50.  
  51.  
  52. //This loop should run 5 times
  53. for (Integer i=0; i<5; i++) {
  54. System.debug('i is now: '+i);
  55. }
  56.  
  57. //Note: "i" didn't work outside the loop when I tried to set Integer "n = i+1". Couldn't figure out how to combine "n" with what's in the loop
  58.  
  59. //2. Below is a loop that iterates through a list. Can you change it to use the new For Loop syntax? It should print out
  60. //each account name in the debug log when you're done.
  61. //Use the list size to tell you how many loops, and use indexing to fetch values. If you need help, check the
  62. //loopingThroughLists method in WeekSixClassExercises for hints.
  63.  
  64. List<Account> accountList = [SELECT Id, Name FROM Account LIMIT 5];
  65.  
  66. for (Account a : accountList) {
  67. System.debug('Account Name: ' + a.name);
  68. }
  69. System.debug('Account List Size: ' + accountList.size());
  70. //Note: I thought this was the new syntax. Not sure what syntax to use.
  71. }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement