I am trying to come up with a new iif statement to have different logic, however I am getting 0's in my new table when I see records from 1 - Master that should have a balance.
IIf([1 - Master].rln='1234', [1 - Master].Balance,
(IIf(IsNull([0 - Month End Factors].Factor), [1 - Master].Balance*[0 - Average Factors].[Avg Factor], [1 - Master].Balance*[0 - Month End Factors].Factor)))
AS [Final Balance]
Can anyone help with this? I am getting 0's after running this, perhaps my statement isnt correctly written.
Thanks.
Don't see anything wrong with syntax but expression could be simpler. Consider:
IIf([1 - Master].rln='1234', [1 - Master].Balance,
[1 - Master ].Balance * Nz([0 - Month End Factors].Factor, [0 - Average Factors].[Avg Factor]))
AS [Final Balance]
Field names must be prefixed with table names only if multiple tables in query have same field names.
IIf([rln]='1234', [Balance], [Balance] * Nz([Factor], [Avg Factor])) AS [Final Balance]
IsNull() and Nz() are both VBA functions. To avoid calls to VBA in an SQL statement, use IS NULL.
IIf([rln]='1234', [Balance], [Balance] * IIf([Factor] IS NULL, [Avg Factor], [Factor])) AS [Final Balance]
If rln
is number type field, don't use apostrophes around 1234.