问题标签 [proc-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
500 浏览

mysql - SAS/PROC-SQL 从具有唯一键的表转换为具有相同键的多行表

目前我有一个如下表:

日期 01/01/1900,这意味着没有配偶/孩子。我想像下面这样转换这个表:

但是这个表仍然不能提供在特定时间 (01/01/2006) 和 (01/01/2011) 回答这个问题的最佳方法,用户 1 有几个孩子?答案是 1 和 2。而且我还发现很难从表 1 转换为表 2,我被困在如何为相同的 user_id 创建新行。关于如何改善这种情况或解决转换表问题的任何想法?非常感谢您的帮助。先感谢您。

0 投票
1 回答
13396 浏览

sas - SAS数据步骤/ proc sql使用自动增量主键从另一个表中插入行

我有2个数据集如下

另一个数据集

如何将第二个表中的所有行插入到第一个表中?情况是第一个表是永久性的。第二张表每月更新一次,所以我想将每月更新表中的所有行添加到永久表中,这样它看起来像这样

我面临的问题是我无法从数据集 1 中增加 id。据我搜索,SAS 中的数据集没有自动增量属性。自动增量可以通过使用数据步骤来完成,但我不知道数据步骤是否可以用于像这样的 2 个表的情况。通常的sql是

但由于 sas 数据集不支持自动增量列,因此我面临的问题。我可以在上面的proc sql之后使用SAS数据步骤来解决它

这会增加 id 列的值,但代码有点丑,而且 id 是主键,在其他表中用作外键,所以我不想弄乱旧行的 id .

我正在学习和使用 SAS,因此非常感谢您的帮助。提前致谢。

额外问题:如果第二张表没有新列,有没有办法用数据步骤完成我想要的(从月度表(2nd)到永久表(1st)添加新行)?目前,我使用这个丑陋的 proc sql/data 步骤来创建新列

0 投票
2 回答
2170 浏览

sas - 我正在尝试在 proc sql 的 where 子句中循环使用 case 语句

我正在尝试为 SAS EG 中的多个提示值创建存储过程代码......所以当我运行存储过程时,我想为 Fac_Nm 提供多个值......

但它引发了以下错误......知道我在哪里做错了,或者还有其他方法吗???

0 投票
1 回答
2161 浏览

merge - SAS 数据步骤合并/修改 2 个数据集,但仍保留主数据集上的完整性约束 (pk)

我有如下代码

我想将事务数据集合并到主数据集,并用事务数据集的值更新主数据集的值。为此,我可以使用下面的代码

结果看起来像这样

但是,主数据集被重置,我失去了主数据集 id 列的主键约束。

据我所知,合并、设置和更新命令创建新数据集,而不是更新当前数据集。

modify 语句是唯一更新当前数据集的语句,但是将上述代码中的 merge 语句替换为 modify 不起作用。

我可以通过在合并后恢复主数据集的主要约束来解决这个问题,但这不是一个好的解决方案。

除了这个还有其他方法吗?帮助表示赞赏,并提前感谢。

0 投票
3 回答
111 浏览

sql - 如何验证 B 列中的值组与 A 列中的值进行比较

我需要验证是否为表应用了特定规则。

规则 = 链接到 1 个客户 (CUSTOMER_NR) 的所有选项(列 OPTION_REF)应该相同

(备注:客户可以链接1到800个选项,所以只链接表到自己是不适用的)

我需要检测并非所有链接选项都相同的客户。

在上面的示例中,我需要检索“CUSTOMER3”作为我的查询结果,因为 2 个不同的选项(OPTION B 和 OPTION T)链接到 CUSTOMER3

有人可以帮忙吗?

提前非常感谢!

0 投票
3 回答
2931 浏览

sas - SAS proc sql将2列变成1列

假设我有一张桌子

我想做一张桌子

使用 SAS proc sql。我怎样才能做到这一点?

0 投票
5 回答
13389 浏览

sql - SAS datastep / SQL从具有相同ID的多条记录中选择最新记录

例如,我有一个数据集如下:

通过 datastep 或 sql,我如何获得 id = 1 和最新日期 2002/01/01 的记录?帮助表示赞赏,并提前感谢。

0 投票
2 回答
2892 浏览

sql - SAS - 从具有相同 ID 但状态不同的多个记录中选择

抱歉,问题标题具有误导性(如果有),因为我不知道如何在 1 个问题中表达我需要的内容。

我有一个数据集如下:

我想选择那些没有完成状态的用户,例如,使用上面的数据集,我得到的结果是

无论如何可以使用 SAS 数据步或 PROC SQL 获得上述结果吗?帮助表示赞赏,并提前感谢。

0 投票
3 回答
138 浏览

merge - 仅保留在单独的变量名称列表中指定的变量

我有一个数据集,其中有一列包含 45 个变量的列表 - 它被称为“输出”。在另一个数据集中,我有 200 个变量的时间序列数据。第一行顶部的变量名称和整个时间的值都在列中。因此,例如,对于变量的名称,我将失业放在首位,而在其下的整个时间段内的失业值。GDP 等也是如此——这个数据集被称为“全部”。

我喜欢从数据集“out”中调用 45 个 cariables,并从“All”中创建一个较小的表,其中只有这 45 个变量。

我用过proc sql; create table TABLE,但我不确定如何完成代码。我的想法是定义一个列表并将该列表引入 proc sql 以制作更小的表,但是我无法让它工作。

如果有人可以提供帮助,我将不胜感激。谢谢, SE

0 投票
3 回答
674 浏览

sas - SAS Proc SQL 计数问题

我有一列数据,该列名为(Daily_Mileage)。我有 15 种不同类型的每日里程和 250 行。我想为每天 15 英里的每一个单独计算。我在 SAS 中使用 PROC SQL,它不喜欢交叉连接命令。我不太确定我应该做什么,但这就是我开始的: