【发布时间】:2017-08-07 23:15:35
【问题描述】:
我有一个主 A 和事务集 B。我正在尝试通过变量 C 用 B 中的记录更新 A 中的记录。
DATA TEST;
UPDATE A B;
BY C;
RUN;
问题是,我的主集中有一些重复的记录,我仍然想更新它们。但我得到的是一个警告
指定的 BY 组有多个记录
只有这些重复项中的第一条记录会被更新。 有没有办法告诉 SAS 更新所有这些? 还是有其他完全不同的方式?
任何帮助表示赞赏。
【问题讨论】:
-
发布一些示例数据。如果表 A 不是变量 C,那么表 A 的唯一标识符是什么?是否要将 A 中的值替换为 C 中的变量?或当 B 缺少变量值时,您是否希望保留 A 的原始值,而不是将值设置为缺失值。
-
问题是我在表 A 中的唯一键基于变量 C 和 D。但我的事务表中只有变量 C。这就是为什么我只用 C 来更新它。
-
正如 SAS 文档所说:如果主数据集中存在重复项,则仅更新第一次出现,因为生成的 WHERE 语句总是在主数据集中找到第一次出现。但我真的希望有另一种方式。
标签: sql sas duplicates sql-update proc