2012-12-07 142 views
0

我想在SAS企业指南中创建一个计算列,如果它满足特定条件,它将显示汽车项目。sql中的案例陈述

  • 有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,那么新的列名是带有诸如挡风玻璃的物品的标签名_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; 

简单的作品,但我不知道如何if语句的else或否则添加。基本上,当我使用上面的代码和硬编码的车型为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 
+1

你能否提供一些相同的样本数据?我想我们可以解码,但需要检查样本数据 –

+0

+1 Ajith希望他可以追加他的问题表格模式和样本数据。 – bonCodigo

+0

@AjithSasidharan我在最后添加了一些数据。希望这可以帮助 – Beanie

回答

1

呀你很接近,我有一些类似的代码和我看起来像这样和工程:)
这显然子子规则,但所有的原则是ELSE同样的,我不不认为有一个ELSE IF ...

CASE WHEN 
    RULE_1 = TRUE THEN 
     CASE WHEN RULE_2 = TRUE AND RULE_3 = TRUE THEN 
      CASE WHEN 
       RULE_4 = TRUE 
      THEN 
       ITEM_1 
      ELSE 
       ITEM_2 
      END 
     ELSE 
      CASE WHEN RULE_5 THEN 
       ITEM_3 
      ELSE 
       CASE WHEN RULE_6 = TRUE THEN 
        ITEM_4 
       ELSE 
        ITEM_5 
       END 
      END 
     END 
END 
+0

我试图以不同的方式添加条件,但我没有完全理解它。它几乎在那里,但没有在那里报价。 – Beanie

+0

@Beanie你为什么不更新你到目前为止尝试过的问题,可能会帮助我们进一步帮助你:) – bonCodigo

+0

@bonCodigo,我添加了正在工作的代码,但也给我所有类型。希望这可以帮助 – Beanie