Искам да създам изчислена колона в корпоративното ръководство на SAS, където ще показва артикули за автомобили, ако отговаря на определени условия.
Има 75 автомобилни артикула (T.TS_Items) като предно стъкло, гуми, волан и др.
Всеки елемент има уникален идентификатор (T.TS_NUM), така че T.TS_NUM =1 до T.TS_NUM =75.
След това искам да дам на всеки нов автомобилен артикул етикет като labelNo_01 до labelNo_75.
Така че, ако типът превозно средство е Honda (T.TS_F_NUM = 2), типът е хечбек (T.TS_TYPE = I) и T.TS_NUM =1, тогава името на новата колона е LabelName_01 с елемент като предно стъкло.
и ако типът на превозното средство се промени например - типът на превозното средство е Toyota (T.TS_F_NUM = 1), но останалото е същото, ще ми даде артикула 75 автомобил за Toyota.
Моят код:
PROC SQL;
CREATE TABLE WORK.MotorVehicle AS
SELECT
T.TS_VEHICLE_RDES,
/* FI_Label_01 */
Case When
T.TS_F_NUM in (1,2) And
T.TS_TYPE = I And
T.TS_NUM =1 Then T.T_Item
else T.T_Item
End
AS FI_Label_01
FROM T.T_ITEM
WHERE T.TS_F_NUM = 41
ORDER BY T.TS_NUM ;
QUIT;
Горното е просто и работи, но не съм сигурен как да добавя команда Else или Else if. По принцип, когато използвам горния код и твърд код, типът на превозното средство е 1 (toyota) в израза where, той работи и ми дава само Toyota, но също така ми дава всички типове вместо само хечбек. Искам да добавя условие, при което дава само тип хечбек, но не знам как или къде в горния код ще влезе.
Също така цикъл би помогнал, за да не се налага да повтарям процеса за всеки тип превозно средство. Надявам се тази информация да помогне.
Някои данни.
T.TS_F_NUM T.TS_TYPE T.T_Item T.TS_NUM
1 I windscreen 1
2 I side mirror 2
1 C Side mirror 3
2 C passenger door 4
1 I dashboard 5
2 I gear box 6