获取两列引用表中同一行的一个表?

时间:2014-11-29 22:07:04

标签: sql sql-server reporting multiple-columns

所以在这个数据库中,我有两个我感兴趣的表。一个是"详细信息"表和另一个是"员工"表

在详细信息表格中,我有很多列,但我感兴趣的是:

  • 工人
  • 管理器

这些列中的值是对Staff表中StaffID列的引用。 Staff表由以下列组成:

  • ,STAFFID
  • 名字

我试图做一个报告,在那里我可以显示一行的详细信息以及涉及该特定细节(行)的工作人员和经理。在此报告中,我想显示工作人员的姓名和经理的姓名。问题是,我无法让它发挥作用。它仅显示工人和经理指的是同一个人的结果。这是我的疑问:

SELECT  Staff.LastName + ', ' + Staff.FirstName AS [Worker], 
        Staff.LastName + ', ' + Staff.FirstName AS [Manager], 
        Details.SiteName AS [Site Name], 
        Details.Description AS [Description], 
        Details.Action AS [Action],
FROM  Details 
INNER JOIN Staff 
   ON Details.Worker= Staff.StaffID AND Details.Manager = Staff.StaffID

所以我不太清楚该怎么做。我很困惑。帮助将非常感谢!谢谢!

1 个答案:

答案 0 :(得分:3)

您必须两次加入Staff表:一次获取工人详细信息,第二次获取经理详细信息:

SELECT W.LastName + ', ' + W.FirstName AS [Worker], 
       M.LastName + ', ' + M.FirstName AS [Manager], 
       Details.SiteName AS [Site Name], 
       Details.Description AS [Description], 
       Details.Action AS [Action],
FROM Details 
INNER JOIN Staff AS W ON Details.Worker = W.StaffID 
INNER JOIN Staff AS M ON Details.Manager = M.StaffID