2.想要将原数据转换成如下:
3.已编辑了code
DATA PROJECT1.BILLING_Jan_Dec;
SET WORK.SORTED_BILLING_ACCOUNTS;
BY BILLING_ACCOUNT;
RETAIN BILL_JAN BILL_FEB BILL_MAR BILL_APR BILL_MAY BILL_JUN BILL_JUL BILL_AUG BILL_SEP BILL_OCT BILL_NOV BILL_DEC;
if BILLING_ACCOUNT = 1 then do;
BILL_JAN =0;
BILL_FEB =0;
BILL_MAR =0;
BILL_APR =0;
BILL_MAY =0;
BILL_JUN =0;
BILL_JUN =0;
BILL_JUL =0;
BILL_AUG =0;
BILL_SEP =0;
BILL_OCT =0;
BILL_NOV =0;
BILL_DEC =0;
end;
IF BILL_MTH = '1JAN2011'D THEN DO;
BILL_JAN = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1FEB2011'D THEN DO;
BILL_FEB = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1MAR2011'D THEN DO;
BILL_MAR = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1APR2011'D THEN DO;
BILL_APR = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1MAY2011'D THEN DO;
BILL_MAY = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH ='1JUN2011'D THEN DO;
BILL_JUN = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1JUL2011'D THEN DO;
BILL_JUL = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1AUG2011'D THEN DO;
BILL_AUG = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1SEP2011'D THEN DO;
BILL_SEP = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1OCT2011'D THEN DO;
BILL_OCT = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1NOV2011'D THEN DO;
BILL_NOV = AMOUNT_TOPAY;
END;
ELSE IF BILL_MTH = '1DEC2011'D THEN DO;
BILL_DEC = AMOUNT_TOPAY;
END;
IF LAST.BILLING_ACCOUNT = 1 THEN OUTPUT;
DROP BILL_MTH AMOUNT_TOPAY CREDIT_ADJ CURRENT_BILL_AMT LAST_BILL_AMT OUTSTANDING PAYMENT ROUNDING_AMT;
RUN;
4.结果和问题:
program出现了一个小感叹号
请问为什么会出现这种情况?代码我需要如何更改?