帐户上的SFDC数据加载器-相同的ID,不同的字段值

时间:2018-07-28 00:13:48

标签: sql salesforce sfdc

这是一个关于数据加载器的相对简单的问题。我目前正在对我们的应用程序运行查询,该查询将由用户为每个帐户提取“最后一次登录”。由于我们的应用未与SFDC集成,因此我必须查询数据,然后使用数据加载器手动上传CSV文件。

该特定字段“上次登录”位于帐户页面上。长话短说,我的查询输出包含一些行,这些行将具有相同的帐户ID,但具有不同的日期-最近的日期和最近的日期。例如。两行具有相同的帐户ID。一个“上次登录”日期为7/30/18,另一行(相同的帐户ID)的“上次登录”日期为7/17/18。

请参见“蓝色”划定区域。 I want 7/30 to populate the field instead of 7/17

不是手动删除带有“最近日期”的行,而是可以通过这种方式(以降序还是升序)对列进行排序,以使“上次登录”字段中的“最近的日期?

本质上,如果记录相同,那么组织将以什么顺序提取数据?

感谢您的帮助!

-M

1 个答案:

答案 0 :(得分:1)

数据按照在源文件中出现的顺序插入/更新。

如果您有这样的更新文件:

Id,Name
00170000015Uemk,Some Name
00170000015Uemk,Some Different Name

最后一个选项将“获胜”。请注意,这是API访问的行为。在Apex中执行类似操作会崩溃并燃烧:

update new List<Account>{
    new Account(Id = '00170000015Uemk', Name = '1'),
    new Account(Id = '00170000015Uemk', Name = '2')
};
// System.ListException: Duplicate id in list: 00170000015UemkAAC

如果您想快速又轻松地进行操作,请查看SELECT ... FROM Account ORDER BY Id, LastLoginDate ASC是否有帮助。它应该对同一帐户的多行进行排序,但是然后按日期升序排序,因此最新的应该“获胜”。

但这听起来像是您有一项业务规则,绝不能用较旧的日期覆盖较新的日期。因此,验证规则可能拒绝不良行?

!ISBLANK(Date__c) && PRIORVALUE(Date__c) > Date__c