1

スタッフとクライアントの連絡先を記録するデータベース テーブルがあります。通常は 1 名のスタッフがクライアントに対応しますが、2 名のスタッフが同時にクライアントに対応することもあります。1 人のスタッフ メンバーはプライマリとしてフラグが立てられ、もう 1 人はセカンダリとしてフラグが立てられます。次の例のように、セカンダリとしてフラグが立てられたリンクを提供するために、プライマリの ContactID が SecondaryContactID フィールドに格納されます。

ContactID   SecondaryContactID   ContactDate   StaffMemberID   ContactLocation
---------   ------------------   -----------   -------------   ---------------  
123456      Null                 01/JUL/2013   John            SydneyCBD
123457      123456               01/JUL/2013   James           Null

私たちの主要な企業アプリには、セカンダリ スタッフ メンバーの同じ ContactLocation がプライマリと同じ (実際には常に同じ場所であるにもかかわらず) 保存されず、デフォルトで Null になるというバグがあります。したがって、上記の例では、「SydneyCBD」が両方の行にあるはずです。

私の抜粋では、例のように2行にこれらのレコードが必要ですが、SydneyCBDをNullの代わりに印刷するにはどうすればよいですか... SecondaryContactIDをリンクとして使用するある種のケースサブクエリ?

4

1 に答える 1

0

次のようなことを試すことができます:

SELECT T1.CONTACTID, 
       SECONDARYCONTACTID, 
       CONTACTDATE, 
       STAFFMEMBERID, 
       ISNULL(T1.CONTACTLOCATION, T2.CONTACTLOCATION) ContactLocation 
FROM   TABLE1 T1 
       LEFT JOIN (SELECT CONTACTLOCATION, 
                         CONTACTID 
                  FROM   TABLE1)T2 
              ON T1.SECONDARYCONTACTID = T2.CONTACTID 

実際の例はSQL Fiddleにあります。

于 2013-08-28T05:48:42.327 に答える