特定の条件を満たした場合に車のアイテムを表示する計算列を SAS エンタープライズ ガイドに作成したいと考えています。
フロントガラス、タイヤ、ハンドルなど75のカーアイテム(T.TS_Items)があります。
各アイテムには一意の ID (T.TS_NUM) があるため、T.TS_NUM =1 ~ T.TS_NUM =75 です。
そして、新車のアイテムごとに、labelNo_01 から labelNo_75 のようなラベルを付けたいと考えています。
したがって、車両タイプがホンダ (T.TS_F_NUM = 2)、タイプがハッチバック (T.TS_TYPE = I)、および T.TS_NUM =1 の場合、新しい列名はフロントガラスなどのアイテムを含む LabelName_01 になります。
たとえば、車両タイプが変更された場合 - 車両タイプはトヨタ (T.TS_F_NUM = 1) ですが、残りは同じで、トヨタの 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