【发布时间】:2014-12-02 16:34:53
【问题描述】:
我对 SQL 比较陌生,并且能够编写一些带有一些 JOIN 的简单语句,WHERE 被投入其中。我也有一些使用 SSRS 2008 的经验。但是我很难基于一个表生成两个(唯一)名称列表.
我正在尝试生成一份包含员工的报告,其中列出了他们所照顾的客户。所有名称(无论是员工还是客户)都保存在 Person 表中。我可以运行一个简单的查询列出所有员工或客户,但我无法同时列出两者。
要生成客户列表,我的查询很简单
SELECT p.Forenames, p.Surname
FROM Person AS p
INNER JOIN Client AS c ON p.ID = c.ID
为了生成员工列表,我的查询将如上所示,但 INNER JOIN 如下:
INNER JOIN StaffMember AS s ON p.ID = s.ID
员工和客户之间的链接以及所有不同的链接如下(供参考)。
Client.ID = ClientRecordForm.Client_ID
Person.ID = ClientRecordForm.AssignedSupportWorker_ID
Person.ID = StaffMember.ID
StaffMember.ID = ClientRecordForm.AssignedSupportWorker_ID
为了帮助说明这一点,我可以运行一个查询来列出已分配给客户的员工。
SELECT DISTINCT p.Forenames, p.Surname
FROM Person AS p
INNER JOIN ClientRecordForm AS crf ON p.ID = crf.AssignedSupportWorker_ID
最后一个查询基本上是我想要的,但我正在努力添加客户名称,因为我似乎无法区分客户,因为我已经在使用 Person 表
【问题讨论】:
-
如果您编辑了问题并提供了示例数据和所需的结果,将会有所帮助。
-
也许你不知道你可以加入两个以上的表?您可以加入 Client.ID = ClientRecordForm.Client_ID 以获取客户数据。
标签: sql sql-server sql-server-2008 reporting-services