2012-02-06 8 views
0

私は、アカウント番号、カード番号、CardNameType、およびカード所有者名の4つの列を持つテーブルを持っています。 CardNameTypeフィールドは、カードの所有者を識別します。値が0の場合は、FATHERテーブルから名前を取得します。 1の場合は、MOTHERテーブルから取得します。 2の場合は、CHILDテーブルから取得します。各テーブルにはAccount#の主キーがあり、各Account#には複数のCard#があります。フィールドに別のフィールド値に基づいて別のテーブルの値を割り当てます

これを行うにはどうすればいいですか? CASE声明が働くのでしょうか、それとも最適な方法がこれについてどうなるでしょうか?

EDIT:申し訳ありませんが、データを誤って解釈しました。あなたが私に与えた解決策は、私はうまくいくとは思わない。 FATHERとMOTHERの名前は同じテーブルに表示されます。たとえば、父親または母親がカードを持っている場合、テーブルに2つのレコードが表示されます(父親用と母親用)。ただし、カードが児童用であれば、それは別のテーブルにあります。私は母親や父親や子供だけを取得できるようにする方法が必要です。

答えて

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ので、すべてでこのヘルプはなかったです? –

関連する問題