2016-02-13 46 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

爲聯接條件工作,必須有一個ON子句

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

除了表的關係,你必須添加後加入,你就在第一種情況下才錯過了昏迷「」。