看板 Statistics 關於我們 聯絡資訊
※ 引述《lphotoimpact (楓雪)》之銘言: : 各位大大好 : 想請問SAS : /-----資料範例HOSP.HOSP3A----/ : ID IND_ICD_NKEEP 其他變項 : 1 0 : 2 0 : 3 0 : 4 0 : 5 0 : /-----資料範例HOSP.HOSP3D----/ : ID IND_ICD_NKEEP 其他變項 : 2 1 : 3 1 : 我原本用MERGE合併 : DATA HOSP.HOSP3E; : MERGE HOSP.HOSP3A(IN=MAIN) HOSP.HOSP3D; : BY ID; : IF MAIN; : IF IND_ICD_NKEEP=1 THEN DELETE; : DROP IND_ICD_NKEEP; : RUN; : /----期望跑出的資料HOSP.HOSP3E------/ : ID IND_ICD_NKEEP 其他變項 : 1 0 : 4 0 : 5 0 : ---------------------------------------------------- : 現在改用SQL : PROC SQL; : CREATE TABLE HOSP.HOSP3E AS : SELECT * : FROM HOSP.HOSP3A LEFT JOIN HOSP.HOSP3D ON HOSP3A.ID=HOSP3D.ID; : QUIT; : 但是我不清楚 : IF IND_ICD_NKEEP=1 THEN DELETE; : DROP IND_ICD_NKEEP; : 該怎麼下 : 只知道多寫下列語法,結果是錯的 : DATA HOSP.HOSP3E; SET HOSP.HOSP3E; : IF IND_ICD_NKEEP=1 THEN DELETE; : DROP IND_ICD_NKEEP; : RUN; : 因為IND_ICD_NKEEP=1都在HOSP.HOSP3D : 但是都沒有合併到HOSP.HOSP3E : 不知道我SQL寫錯在哪? 改成 PROC SQL; CREATE TABLE HOSP.HOSP3E AS SELECT A.* FROM HOSP.HOSP3A A LEFT JOIN HOSP.HOSP3D B ON A.ID=B.ID WHERE B.IND_ICD_NKEEP NE 1; QUIT; A.*就是最後的DATA(HOSP.HOSP3E)是保留HOSP.HOSP3A所有欄位,而不會有B(HOSP.HOSP3D)的 如果只要ID就打A.ID就好了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.231.84
lphotoimpact:成功了~謝謝大大~原來select要這樣下 01/02 00:24
lphotoimpact:還以為LEFT JOIN就是指定左方資料是主檔了 01/02 00:25