簡體   English   中英

如何修復SAS中的where子句

[英]How can I fix my where clause in SAS

我有一個表是SAS說t這樣看

A           B                   C       D
--------------------------------------------------------------
VOLUME      172631922966528     IMPLIED 2012-10-04
VOLUME      173731441803264     IMPLIED 2012-10-04
PRIX_VOLUME 189124634214400     IMPLIED 2012-10-04
PRIX_VOLUME 123153895784448     IMPLIED 2012-10-04
VOLUME      266090408574976     IMPLIED 2012-10-04
VOLUME      119855364243456     IMPLIED 2012-10-04

D列是Date (格式yymmdd10 )列,並且我有一個值得2012-10-04的宏date0 ,我正在嘗試執行一個簡單的數據步驟

data test;
    set t (where=(A eq "VOLUME" and D eq &date0.));
run;

但這不起作用

你能幫忙解決嗎?

這是因為在處理宏變量時,您將獲得:

data test;
    set t (where=(A eq "VOLUME" and D eq 2012-10-04));
run;

哪種SAS可以解決:數據測試; 設置t(其中=(Aeq“ VOLUME”和Deq 1998)); 跑; 因為它看到的是數學而不是日期。 您需要向SAS明確說明:
1.不是代數。
2.應該將其作為日期閱讀。

要使其以字符串形式讀取,請添加引號。 為了使字符串表示日期,請在引號后附加廣告:

data test;
    set t (where=(A eq "VOLUME" and D eq "&date0."d));
run;

這應該夠了吧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM