2012-12-07 188 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