You need to sign in to do that
Don't have an account?

Compile Error: Method does not exist or incorrect signature - SOQL - query related to person's account- update fields
Error message:
Compile Error: Method does not exist or incorrect signature: account.Dr_Chrono_appointments__r.get(Integer) at line 58 column 22
Problem:
I'm new to Apex and SOQL. I have two objects; Accounts (Master object) and Appointments (Child object) and I'm trying to write a trigger (With SOQL query) that returns the inital weight value (corresponding to the inital date) and latest weight (corresponding to the most recent appointment) per account on custom fields inital_weight__c and latest_weight__c respectively. Both fields are built on the account (Persons account) object:
Code:
Compile Error: Method does not exist or incorrect signature: account.Dr_Chrono_appointments__r.get(Integer) at line 58 column 22
Problem:
I'm new to Apex and SOQL. I have two objects; Accounts (Master object) and Appointments (Child object) and I'm trying to write a trigger (With SOQL query) that returns the inital weight value (corresponding to the inital date) and latest weight (corresponding to the most recent appointment) per account on custom fields inital_weight__c and latest_weight__c respectively. Both fields are built on the account (Persons account) object:
Code:
Trigger GetLatestAndInitalWeightValue on Appointments__c(after insert, after update) { Set<Id> accountIds = new Set<Id>(); for (Appointments__c appt : trigger.new) { accountIds.add(appt.Patient__c); } //Elimnate the the accounts that don't have IDs for accountIds.remove(null); //SOQL query that returns that latest weight value if (!accountIds.isEmpty()) { List<Account> accountsToUpdate = new List<Account>(); for (Account account : [ Select Id, ( Select Scheduled_time__c, weight__c From Dr_Chrono_appointments__r Order by Scheduled_time__c desc Limit 1 ) From Account Where Id in :accountIds ]) { //Declare a decimal variable to store latest weight value Decimal LW = NULL; // Get(0) to return the first element in the list value if (!account.Dr_Chrono_appointments__r.isEmpty()) { LW = account.Dr_Chrono_appointments__r.get(0).weight__c; } accountsToUpdate.add(new Account( Id = account.Id, Latest_weight__c = LW )); } //SOQL query that returns that inital weight value for (Account account2 : [ Select Id, ( Select Scheduled_time__c, weight__c From Dr_Chrono_appointments__r Order by Scheduled_time__c ASC Limit 1 ) From Account Where Id in :accountIds ]) { //Declare a decimal variable to store inital weight value Decimal IW = NULL; // Get(0) to return the first element in the list value if (!account.Dr_Chrono_appointments__r.isEmpty()) { IW = account.Dr_Chrono_appointments__r.get(0).weight__c; } accountsToUpdate.add(new Account( Id = account.Id, Inital_Weight__c = IW )); } update accountsToUpdate; } }