【发布时间】:2022-11-24 17:44:00
【问题描述】:
我有一个不定期更新的表格;我需要始终从表中检索最新的数据集。
如果列 PERIODAG_D(时间戳变量)接近当前日期,我将知道数据是最新的。
我当前的解决方案是将 outobs=1 设置为仅通过 PER_DAG_I (数字日期变量)降序获得一次观察和排序:
PROC SQL OUTOBS=1;
CREATE TABLE DESC_SORT AS
SELECT DISTINCT t3.PER_DAG_I,
t3.PERIODAG_D
FROM COREPLNZ.KXYZ1000FCT t1
LEFT JOIN COREPLNZ.KXYZ0090_SKEMA_JUNK t2 ON (t1.SKEMA_XYZ_JUNK_I = t2.SKEMA_XYZ_JUNK_I)
LEFT JOIN COREPLNZ.TXYZ0200_KILDEFACT_DIM t4 ON (t1.KILDEFACT_I = t4.KILDEFACT_I)
LEFT JOIN COREPLNZ.TKON0010PER_DAG_DIM t3 ON (t1.OPGOR_DAG_I = t3.PER_DAG_I)
WHERE t4.KILDEFACT_NAVN = 'TLIK6000_RESTLOEBETID_FCT' AND t2.SKEMA_KODE = 'C 73.00'
ORDER BY t3.PER_DAG_I DESC;
QUIT;
这给了我以下输出:
然后我将 PERIODAG_D 和 PER_DAG_I 添加到宏变量中,我可以在我的 WHERE 语句中使用它来获取表中的最新数据。
我的问题是,这感觉像是一个非常低效的解决方法,只获取一个日期变量。
我希望你能指出我正确的方向。
【问题讨论】:
-
你能告诉我们你的整个代码吗?这是您实际提取数据的代码吗?
标签: sql sas enterprise-guide