Мне нужно создать запрос SOQL с несколькими логическими операторами AND / OR:
Это мой текущий действующий SOQL:
List<Goal__c> goalList = [
SELECT Id, RecordType.DeveloperName, This_Year_Title__c, Year__c, Month__c, OwnerId, TAT_Company__c
FROM Goal__c
WHERE RecordType.DeveloperName IN :recordTypeSet
AND (
(
This_Year_Title__c IN :actualShippingYearSet
AND Year__c IN :actualShippingYearSet
AND (OwnerId IN :salesRepIdSameYearSet OR TAT_Company__c IN :tatCompanySameYearValueSet)
)
OR (
This_Year_Title__c IN :lineCreationYearSet
AND Year__c IN :requestYearSet
AND (OwnerId IN :salesRepIdDifferentYearSet OR TAT_Company__c IN :tatCompanyDifferentYearValueSet)
)
OR (
(This_Year_Title__c IN :actualShippingYearSet
AND Year__c IN :actualShippingYearSet)
OR (This_Year_Title__c IN :lineCreationYearSet
AND Year__c IN :requestYearSet)
)
)
];
Внутри есть 3 блока условий и оператор AND , Но, как вы можете видеть, все блоки находятся в одном и том же состоянии, но не одинаковы
Как я могу свести SOQL к минимуму?