Я хочу создать вычисляемый столбец в корпоративном руководстве 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