2016-02-13 6 views
0

Мне нужно создать набор данных (TABLE3), чтобы проверить, равны ли некоторые переменные из двух других таблиц. Если это так, код должен возвращать 0, в противном случае 1. Но, поскольку я новый пользователь SAS и SQL, я изо всех сил пытаюсь понять, как это сделать.PROC SQL - случай, когда с несколькими таблицами

Я пытаюсь что-то вроде этого, но он не работает.

PROC SQL; 
CREATE TABLE TABLE3 AS 
SELECT A.*, B.* 
CASE WHEN B.VARIABLE1 = A.VARIABLE2 THEN 0 ELSE 1 END AS VARIABLE_1_2, 
CASE WHEN B.VARIABLE3 = A.VARIABLE4 THEN 0 ELSE 1 END AS VARIABLE_3_4 
FROM TABLE1 AS A 
LEFT JOIN TABLE2 AS B; 

P.S .: Переменные 1, 2, 3 и 4 являются всеми символьными переменными.

+2

Вам не хватает предложения 'on' для соединения. –

ответ

0

Для РЕГИСТРИРУЙТЕСЬ условия для работы, необходимо положение о

PROC SQL; 
CREATE TABLE TABLE3 AS 
SELECT A.*, B.*, 
CASE WHEN B.VARIABLE1 = A.VARIABLE2 THEN 0 ELSE 1 END AS VARIABLE_1_2, 
CASE WHEN B.VARIABLE3 = A.VARIABLE4 THEN 0 ELSE 1 END AS VARIABLE_3_4 
FROM TABLE1 AS A LEFT JOIN TABLE2 AS B 
**ON TABLE1.SOME_COLUMN_NAME = TABLE2.SOME_COLUMN_NAME** 
; 
0

В дополнение к таблицам связи следует добавить после того, как присоединиться, вы пропустите кома «» как раз перед первым случаем.

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