2012-05-13 2 views
0

Я имею трудное время получить функцию INTCK для возврата результата я использую следующий запросфункция INTCK в ЗЕЬЕСТЕ SAS

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

благодаря

+0

MMD не имеет MIN_DATE или MAX_DATE – itzy

+0

Я обновил имена столбцов. –

+2

Это разумный вопрос ... Я не понимаю, почему он был закрыт. Я работаю с OP для решения проблемы. –

ответ

2

Похоже, что у вас это было почти правильно ... это работает.

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; 
+0

Спасибо за ваш быстрый ответ, но у меня есть несколько миллионов записей в каждой таблице MMD и MUC в SAS базы данных, так как я могу сделать это в этом случае? –

+0

Почему бы не использовать вышеуказанный оператор SQL для ваших больших наборов данных? –

+0

Фактически в верхнем регистре я вводил значения данных datalines вручную, в этом случае это сработало, но я не могу вручную вводить миллионы записей, поэтому я извлекаю данные из набора данных SAS, используя приведенный ниже queryproc sql; CREATE TABLE WEEK_NUM AS SELECT DISTINCT MMD.MED_DEF_CODE , MMD.LINE_OF_BUSINESS КАК LOB , MMD.MAX_OF_CLAIM_INSERT_DATE А.С. MAX_DATE , MMD.MIN_OF_CLAIM_INSERT_DATE А.С. MIN_DATE , INTCK ('' Неделя, MMD.MIN_OF_CLAIM_INSERT_DATE, MMD.MAX_OF_CLAIM_INSERT_DATE) AS WEEK_COUNT FROM SASAVE.MIN_MAX_DATE MMD quit; –

Смежные вопросы