【发布时间】:2012-02-06 22:28:01
【问题描述】:
如果我在 SAS 中使用 ODBC 运行创建表会怎样。该表现在保存到我在 SAS 中的永久库中。现在我想使用该表,因为它搜索了数百万行数据,完成后我过滤了项目,该表有 664 个不同的 sys_id 行。
我需要获取这 664 个不同的 sys_id 行,现在我需要提取 ODBC 中匹配的所有 sys_id。我希望匹配在特定时间段内有医疗索赔的任何 sys_id。我知道如何执行查询部分,但不确定如何同时连接本地库中的表和 ODBC。我试过做很多不同的事情,比如 libname test.sys_id 没有加入到 galaxy.sys_id 中,但没有任何效果。我还尝试了解这是否可能。我想这可能是不可能的。奇怪的是,我可以通过获取我创建的表并将其连接到服务器上的表来在 Access 中执行此操作,因此我认为使用 SAS 是可能的。我无法在 Access 中运行此程序。内存不足。有什么建议吗?
以下是我目前尝试过的代码:
/***the table is successfully created and saved to my libname readm*****/
proc sql;
connect to odbc (dsn=server user=user password=password);
create table readm.test as
select * from connection to odbc
(select distinct server.sys_id, server.clm_aud_nbr,
server.fst_srvc_dt, server.proc_cd
from server.table
where server.proc_cd in ('27130', '27132', '27447')
and server.fst_srvc_dt between (&startdt) and (&enddt))
order by server.sys_id, server.fst_srvc_dt;
disconnect from odbc;
quit;
proc sql;
connect to odbc (dsn=server user=user password=password);
create table readm.test2 as
select * from connection to odbc
(select libname readm.test,
server.mem_sys_id, server.clm_aud_nbr, server.fst_srvc_dt,
server.proc_cd
from libname readm.test
left outer join server.table on
readm.test_sys_id = server.table_sys_id
where server.fst_srvc_dt
between (&startdt) ad (&enddt))
disconnect from odbc;
quit;
【问题讨论】:
-
“到目前为止”发布您的代码....尽可能解决问题。通过这种方式,您将获得更多帮助...
-
proc sql;连接到 odbc(dsn=服务器用户=用户密码=密码); create table readm.test as select * from connection to odbc (select distinct server.sys_id, server.clm_aud_nbr, server.fst_srvc_dt, server.proc_cd from server.table where server.proc_cd in ('27130', '27132', '27447 ') 和 server.fst_srvc_dt (&startdt) 和 (&enddt)) 之间的顺序按 server.sys_id、server.fst_srvc_dt;断开与 odbc 的连接;放弃; /***表成功创建并保存到我的libname readm*****/ 2nd series of code being running in 2nd comment
-
proc sql;连接到 odbc(dsn=服务器用户=用户密码=密码); create table readm.test2 as select * from connection to odbc (select libname readm.test, server.mem_sys_id, server.clm_aud_nbr, server.fst_srvc_dt, server.proc_cd from libname readm.test left outer join server.table on readm.test_sys_id = server.table_sys_id where server.fst_srvc_dt between (&startdt) ad (&enddt)) 与odbc断开连接;退出;
-
这里的目标再次是通过 odbc 提取与服务器不同的 sys_id,其中列出了 proc_cd。它返回 664 个不同的 sys_id,并将其保存在我的 SAS 库中本地计算机上的 libname readm.test 中。然后我需要通过 odbc 将该表连接到服务器,以便它会查找那些不同的 664 sys_id 的所有声明。我不能只是进去说我想要日期之间的索赔,因为这是 3 年的索赔。我只想要基于这 3 个 proc_cd 的 664 个 sys_id 的声明。
-
想提供更多信息。我正在连接到我公司的服务器和数据库。我拥有执行此操作的阅读权限。我使用 SAS 创建程序和查询。当我这样做时,我将该输出保存为本地计算机上的表。由于不同的 664 sys_id,我想在本地计算机上使用该表,并将该表连接回服务器和服务器表。我的表不在服务器上,也不能是因为我没有写权限。我这样做是因为我们每月有超过 1200 万个索赔,而且我无法尝试提取 3000 万个 sys_id,它们是成员 ID