Created
October 7, 2019 22:15
-
-
Save katelessardrad/2e2e91beb9303282392e564855bcf3da to your computer and use it in GitHub Desktop.
Week 6 Homework
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public with sharing class WeekSixHomework { | |
public static void soqlPractice() { | |
//1. Below is a SOQL query that should be returning the top 5 Accounts in our org based on Annual Revenue. | |
//Something's not quite right, can you fix the query? | |
List<Account> topFiveAccounts = [SELECT Id, Name, AnnualRevenue FROM Account WHERE AnnualRevenue != 0 LIMIT 5]; | |
System.debug('This should be 5: ' + topFiveAccounts.size()); | |
//2. Here is a query that is missing something. It compiles, but if you try and run this method in Anonymous | |
//you'll get an error when the method tries to use the query results. Fix it! :) | |
List<Contact> contacts = [SELECT FirstName, LastName, MailingState FROM Contact LIMIT 10]; | |
for (Contact c : contacts) { | |
String name = c.FirstName + ' ' + c.LastName; | |
} | |
//3. Can you write a SOQL query from scratch that will return the top 10 Accounts in the org, ordered by annual | |
//revenue in decending order? Print your results in the debug log. | |
List<Account> tenTopAccts = [SELECT Id, Name, AnnualRevenue FROM Account WHERE (AnnualRevenue != 0 AND AnnualRevenue != Null) ORDER BY AnnualRevenue DESC LIMIT 10]; | |
for (Account Acct : tenTopAccts){ | |
String results = acct.Name + ' ' + acct.AnnualRevenue; | |
system.debug('These are the top 10 Accounts: '+results); | |
} | |
//4. Can you write a SOQL query that will return all opportunities for all accounts in the topFiveAccounts list that we used | |
//in Number 1? (topFiveAccounts) Hint: If you're stuck, look back a the code in WeekSixClassExercises, getOpenOppsForHotAccounts method | |
// Print your results in the debug log. | |
List<Opportunity> topFiveOpptys = [SELECT Id, Amount, StageName FROM Opportunity WHERE (IsClosed = False AND AccountID in:topFiveAccounts)LIMIT 5]; | |
system.debug('These are the opportunities for the top 5 accounts: '+ topFiveOpptys); | |
} | |
public static void forTheLoveOfForLoops() { | |
//1. Take a look at the list and loop below. It's commented out since it can't run as is. | |
// Can you replace the ?? with the number that makes sense based on the comments? | |
// Remove the slashes and compile. | |
// Can you add an extra counter variable so that you can print out how many times the loop ran in total? | |
//This loop should run 5 times | |
Integer counter = 0; | |
for (Integer i=0; i<5; i++) { | |
System.debug('i is now: '+i); | |
counter++; | |
} | |
system.debug('How many times the loop ran: ' + counter); | |
//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 | |
//each account name in the debug log when you're done. | |
//Use the list size to tell you how many loops, and use indexing to fetch values. If you need help, check the | |
//loopingThroughLists method in WeekSixClassExercises for hints | |
List<Account> accountList = [SELECT Id, Name FROM Account LIMIT 5]; | |
for (Integer listCount=0; listCount<accountList.size(); listCount++) { | |
System.debug('Account Name: ' + accountList[listCount].name); | |
} | |
} | |
} |
Ahhhhh makes total sense! I did miss that (line 7)! Thanks for pointing it out- I'll take a look again :)
And you're exactly right on Line 32... I think the hint did confuse me a bit but that also makes sense.
Thanks so much for your notes!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@kate This looks good! Couple of observations :
Line 7 : The query looks good but the task is also looking for Top 5 Accounts ;) You might have missed it.
Line 24 : Its technically correct and always good to add a null check but the comments don't ask you to add the filter AnnualRevenue != 0
Similarly on Line 32, the query doesn't need to filter on IsCLosed = false as they are asking for all opportunities. But I can see that the hint might have confused you.