Proc Sql Select Into создает временную переменную, которую я не могу вызвать

Я пытаюсь использовать proc sql select into для создания переменной, которую затем попытаюсь вызвать позже. Эта переменная - средняя цена (BlockPrice).

proc sql;
   create table Block_Price_Calc as 
   select mean(Price) Into : BlockPrice
from Data1
Where As_Of_Date >= '31MAR2015'd and As_Of_Date < '07APR2015'd;
quit;

%put &BlockPrice;

proc sql;
 create table Want as 
 select *,
     (&BlockPrice) as Block
 from Data2;
quit;

Переменная BlockPrice не распознается и, похоже, сохраняется как временная переменная. Есть предположения?


person ldan    schedule 04.02.2020    source источник
comment
Что за журнал? Первый ставь работает?   -  person stallingOne    schedule 04.02.2020
comment
Вы не можете использовать CREATE для создания набора данных и INTO для создания макропеременных в одном операторе. Что вы на самом деле пытаетесь сделать? Также ваш второй запрос ссылается на другой набор данных и другую макропеременную.   -  person Tom    schedule 04.02.2020
comment
Первый оператор put создает временную переменную, но расчет верен. Я хочу сохранить среднее значение Data1 и создать новый столбец в Data2 с этим вычисленным средним. Ошибка во втором процессе sql: ОШИБКА 22-322: синтаксическая ошибка, ожидается одно из следующего:!, !!, &, *, **, +, ',', -, '.', /, ‹ , ‹=,‹ ›, =,›, ›=,?, AND, AS, CONTAINS, EQ, EQT, GE, GET, GT, GTT, LE, LET, LIKE, LT, LTT, NE, NET, OR, ^ =, |, ||, ~ =.   -  person ldan    schedule 04.02.2020


Ответы (1)


INTO Предложение не может использоваться в операторе CREATE TABLE.

proc sql; 
   select mean(Price) Into : BlockPrice
   from Data1
   Where As_Of_Date >= '31MAR2015'd and As_Of_Date < '07APR2015'd;
quit;
person Alexey Sigida    schedule 04.02.2020