1

我有一个记录员工与客户联系的数据库表。通常只有 1 名工作人员联系客户,但偶尔有 2 名工作人员同时与客户联系。一名工作人员被标记为主要工作人员,另一名工作人员被标记为次要工作人员。要提供一个链接,标记为次要的链接会将主​​要的 ContactID 存储在 SecondaryContactID 字段中,如下例所示:

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

我们的主要公司应用程序有一个错误,即它没有为次要员工存储与主要员工相同的 ContactLocation(即使他们在现实中总是相同的位置),它默认为 Null。因此,在上面的示例中,“SydneyCBD”应该在两行中。

在我的摘录中,我需要两行上的这些记录,就像示例一样,但是我如何让 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 回答