SELECT语句SAS中的INTCK函数

SELECT语句SAS中的INTCK函数,sas,Sas,我很难让INTCK函数返回使用以下查询的结果 proc sql; CREATE TABLE SASAVE.WEEK_NUM AS SELECT DISTINCT MUC.CODE ,MUC.LOB ,MMD.MAX_DATE ,MMD.MIN_DATE ,INTCK('WEEK', MMD.MAX_DATE, MMD.MIN_DATE) AS WEEK_COUNT FROM SASAVE.MUC, MMD

我很难让INTCK函数返回使用以下查询的结果

proc sql;
CREATE TABLE SASAVE.WEEK_NUM AS
SELECT DISTINCT MUC.CODE
        ,MUC.LOB
        ,MMD.MAX_DATE
        ,MMD.MIN_DATE
        ,INTCK('WEEK', MMD.MAX_DATE, MMD.MIN_DATE) AS WEEK_COUNT
FROM    SASAVE.MUC,
        MMD             
WHERE MMD.LOB = MUC.LOB
AND MMD.CODE = MUC.CODE
quit;
以下是MUC和MMD表中的数据

 **MMD**
    MIN_DATE         MAX_DATE       CODE    LOB
    13FEB2012   11MAY2012   527A    TMZ
    13FEB2012   1MAY2012    TB50    ZAE
    13FEB2012   10MAY2012   3O05    ZAA

**MUC**
CODE      LOB
527A    TMZ
TB50    ZAE
3O05    ZAA
您能告诉我是否可以使用INTCK函数获取周数吗


谢谢

看来你做得差不多对了……这很有效

Data mmd;
 input min_date:DATE9. max_date:date9. code $ lob $;
 format min_date max_date mmddyy10.;
 datalines;
13FEB2012   11MAY2012   527A    TMZ
13FEB2012   01MAY2012    TB50    ZAE
13FEB2012   10MAY2012   3O05    ZAA
;

Data muc;
 input code $ lob $;
 datalines;
527A    TMZ
TB50    ZAE
3O05    ZAA
;

proc sql;
 CREATE TABLE WEEK_NUM AS
 SELECT DISTINCT MUC.CODE
  ,MUC.LOB
  ,MMD.MAX_DATE
  ,MMD.MIN_DATE
  ,INTCK('WEEK', MMD.MIN_DATE, MMD.MAX_DATE) AS WEEK_COUNT
 FROM MUC, MMD             
 WHERE MMD.LOB = MUC.LOB
  AND MMD.CODE = MUC.CODE;
quit;

MMD没有MIN_DATE或MAX_DATE我已经更新了列名。这是一个合理的问题…我不明白为什么它关闭了。我正在与OP合作解决这个问题。我也不认为有任何理由关闭这个。对我来说似乎很合理。也许关闭它的人不知道它与SAS软件有关。有没有办法重新打开一个问题?谢谢你的及时回复,但我在SAS数据库的每个MMD和MUC表中都有几百万条记录,那么,在这种情况下我该怎么做呢?为什么上面的SQL语句不适用于您的大型数据集?实际上,在大写形式中,我手动输入数据线值,在这种情况下,它工作正常,但我无法手动输入数百万条记录,因此我使用下面的queryproc SQL从SAS数据集中提取数据;创建表格WEEK_NUM AS SELECT DISTINCT MMD.MED_DEF_CODE,MMD.LINE_OF_BUSINESS AS LOB,MMD.MAX_OF_CLAIM_INSERT_DATE AS MAX_DATE,MMD.MIN_OF_CLAIM_INSERT_DATE AS MIN_DATE,INTCK'WEEK',MMD.MIN_OF_CLAIM_INSERT_DATE,MMD.MAX_OF_OF_CLAIM_OF_INSERT_DATE AS WEEK_COUNT FROM sasasasasave.MIN_MAX_DATE MMD退出;proc-sql;创建表格WEEK NUM AS SELECT DISTINCT MMD.MED_DEF_CODE,MMD.LINE_OF_BUSINESS AS LOB,MMD.MAX_OF_CLAIM_INSERT_DATE AS MAX_DATE,MMD.MIN_OF_CLAIM_INSERT_DATE AS MIN_DATE,INTCK'WEEK',MMD.MIN_OF_CLAIM__INSERT_DATE,MMD.MAX_OF_OF_CLAIM_OF_INSERT_DATE AS WEEK_COUNT FROM sasasasasave.MIN_MAX_DATE MMDquit;我想你需要重申你的问题。如果您需要帮助获取我提供的PROC SQL的输入数据集,请询问。我假设您有两个数据集要通过LOB和代码连接,其中一个数据集有两个日期,您也希望在这两个日期之间有周。如果这不是真的…请再次发布问题。如果我不知道输入数据,我无法在注释中说明您的SQL…如果您帮助我理解,我将提供帮助