2012-02-06 135 views
0

我有一個包含四列的表格:Account#,Card#,CardNameType和持卡人姓名。 CardNameType字段將標識誰是卡的所有者。如果它等於0,我想從父表中得到名字;如果它是1,則從MOTHER表中獲取;如果是2,則從CHILD表中獲取。每個表格都有一個Account#的主鍵,每個Account#可以有多個Card#。根據另一個字段的值爲另一個表中的值分配一個字段

我該怎麼去做這件事? CASE聲明是否有效?或者最佳方式是什麼?

編輯:對不起,我誤解了數據。你給我的解決方案我不相信會起作用。父親和母親的名字出現在同一張表中。例如,如果父親或母親有一張卡片,表格中會出現兩條記錄(一條是父親,一條是母親)。但是,如果卡片是用於兒童的,那麼它在另一張桌子上。我需要一種辦法讓我能夠找回母親或父親或孩子。

回答

2

是的,這聽起來像是一個案例聲明最好的利用。

如:

SELECT CASE c.CardNameType 
      WHEN 0 THEN f.Name 
      WHEN 1 THEN m.Name 
      WHEN 2 THEN c.Name 
     END AS [Card Owner] 
FROM 
    Card c 
INNER JOIN 
    Father f ON f.Account# = c.Account# 
. 
. 
. 
+0

@thevanillathrilla所以這樣做無助於??? – 2012-02-06 18:30:05

相關問題