我想在 SAS 企业指南中创建一个计算列,如果它满足某些条件,它将显示汽车项目。
有 75 个汽车项目 (T.TS_Items),例如挡风玻璃、轮胎、方向盘等。
每个项目都有一个唯一的 ID (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) 但其余部分相同,它将为我提供 Toyota 的 75 辆汽车项目。
我的代码:
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 语句。基本上,当我使用上面的代码并在 where 语句中将车辆类型硬编码为 1(丰田)时,它的工作方式和它只给了我丰田,但它也给了我所有的类型,而不仅仅是掀背车。我想添加一个条件,它只给出类型掀背车,但我不知道在上面的代码中它将如何或在哪里进入。
循环也会有所帮助,因此我不必为每种车辆类型重复该过程。希望这些信息有所帮助。
一些数据。
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