无法从 SOQL 查询中的创建日期中提取年份


SELECT House__r.Name, House__r.House_Owner__r.person__r.Email__c, (SELECT Name, Total_Balance__c, Total_Expense__c FROM Expenses__r Where Type__c='Yearly' AND AND CALENDAR_YEAR(CreatedDate) =  CALENDAR_YEAR(System.today() )   FROM Member__c

错误 => 未知解析错误。

请建议我还能做什么。

你连续有两个"AND"。此外,如果您使用的是查询编辑器,则不能使用 System.today((。

(在移动设备上,格式会很差,抱歉(

SOQL 仅支持条件的"字段 - 运算符 - value_or_function"样式。你试图让它成为"函数 - 运算符 - 另一个函数",不起作用。

对于您的特定方案,请尝试使用WHERE Created date = THIS_YEAR。这是一个特殊的文字,见 https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm

更通用的方法是将您需要的内容编写为公式字段,您可以与 YEAR(TODAY((( 进行比较。(按公式过滤的性能可能很差,通常会导致全表扫描,您必须进行测试,也许使用索引列添加更多过滤器......

或者写成WHERE CreatedDate >= :start AND CreatedDate <= :stop,为您的范围放置正确的绑定变量。

最新更新