2016-09-16 6 views
0

У меня есть следующий код в SAS, с которым я пытаюсь получить набор данных, где значения abo_id и abo_bklantid не совпадают.Где предложение не работает

data set_2 
set final_set; 
where abo_id != abo_bklant_id; 
run; 

Это, однако, trows следующее сообщение об ошибке:

ERROR: Syntax error while parsing WHERE clause. 
ERROR: No input data sets available for WHERE statement. 
ERROR 56-185: SET is not allowed in the DATA statement when option DATASTMTCHK=COREKEYWORDS. Check for a missing semicolon in the 
      DATA statement, or use DATASTMTCHK=NONE. 

ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant, 
      a missing value, INPUT, PUT. 

ERROR 76-322: Syntax error, statement will be ignored. 

Любые мысли, где я пойти не так?

ответ

0

Вы пропускаете точку с запятой на вашей первой линии :-)

data set_2; /* <<< here! */ 
set final_set; 
where abo_id ne abo_bklant_id; /* <<< cannot use != in SAS */ 
run; 

Также (кредит Роберт С.) оператор != не действует в SAS.

+3

В SAS нет оператора '! ='. Вместо этого используйте '^ =' или 'ne' или' <> '. –

+0

Хорошее место, ответьте на обновления! –

+3

Не используйте <> для обозначения не равных. В большинстве SAS это оператор MAX, а не оператор NE. '-1 <> 0' равно 0, так как 0 больше -1. Но '-1^= 0' равно 1, поскольку -1 не равно 0. – Tom

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