Формат даты в sas сцепляется с pro c sql при условиях - PullRequest
0 голосов
/ 28 января 2020

у меня есть macro_variable:% let date = 201909 и таблица:

ID   Sending-date  item      
 1   15-jul-2019    A   
 2   23-sep-2019    B  
 3   12-sep-2019    A        
 4    1-jan-2019    B  
 5   5-feb-2019     B       

Что мне интересно сделать, это проверить, есть ли отправленный товар в месяце, указанном в моей дате (09 сентябрь) и два предыдущих месяца (август и июль) с использованием pro c sql и без добавления новых переменных.
ожидаемая таблица результатов выглядит следующим образом:

Month   Year  Number of items
9       2019        2
8       2019        0 
7       2019        1

Самая большая проблема Как преобразовать формат даты в таблице, как моя макро-переменная дата.

1 Ответ

1 голос
/ 28 января 2020

Вот один из методов.

Я использовал cutoff_date вместо даты, потому что это помогает легче различать даты. Используйте INTNX () для вычисления даты. В этом случае я устанавливаю обрезание как конец cutoff_month и начало двух месяцев назад. Возможно, вам придется определить это более четко, чтобы удовлетворить ваши потребности, но это работает.

%let cutoff_date=201909; 

 proc sql;
 create table want as
 select month(sending_date) as Month, count(*) as num
 from have
 where sending_date between intnx('month', input("&cutoff_date.", yymmn6.), 0, 'e') and intnx('month', input("&cutoff_date.", yymmn6.), -2, 'b')
 group by calculated Month;
 quit;
...