Ссылка на макропеременную, созданную приглашением SAS EG - PullRequest
0 голосов
/ 17 сентября 2018

Я создал приглашение в SAS EG, которое принимает текстовый ввод и создает макропеременную с именем 'variableName'.

Я пытаюсь ссылаться на эту макропеременную следующим образом:

proc sql;
create table MyTable as
   select * from Source_Table as a
   where a.field = &variableName ;

Это дает мне ошибку, которая говорит: «Синтаксическая ошибка, ожидающая одно из следующего: имя, строка в кавычках, числовая константа, константа даты и времени, пропущенное значение, BTRIM, INPUT, PUT, SUBSTRING, USER. "

Я также пробовал заключать & variableName в одинарные и двойные кавычки, но когда я это делаю, я просто нея не могу получить никаких результатов.

Я могу ссылаться на приглашение, когда использую построитель запросов и фильтрую данные на основе запроса, но я пытаюсь использовать значение приглашения в вычисляемых выражениях и т. д. и в запросах, которые я использую.написать без построителя запросов.Как я могу ссылаться на переменную, которую я создал в приглашении ??

Редактировать: код со значением, которое будет иметь макропеременная

proc sql;
create table MyTable as
    select * from Source_Table as a
    where a.field = 'NAME OF PERSON';

Когда я запускаю это, я получаю результаты, которые яхочу.

1 Ответ

0 голосов
/ 17 сентября 2018

Необходимо разрешить к действительному коду SAS. Если предположить, что & variableName является строкой, то это будет что-то вроде:

proc sql;
create table MyTable as
   select * from Source_Table as a
   where a.field = "&variableName." ;

Если это не работает, пожалуйста, покажите запрос, который работает с тем же значением, что и у макропеременной. И тогда мы можем предложить, как изменить ваш код.

Редактировать: на основании вашего комментария у вас нет запроса, связанного с вашим запросом. Щелкните правой кнопкой мыши запрос и свяжите запрос с запросом, и он будет запущен перед запросом, чтобы указать значение.

...