SQL - 根据多个ID连接表并根据数据是否存在返回查询

时间:2016-03-23 12:44:19

标签: sql sql-server-2008 join

首先,希望标题有助于解释它,如果没有道歉。不确定在标题中解释我所追求的最佳方式。

我有三张桌子。结果,类型和客户。

结果和客户表格由Outcomes.Client_ID = Client.ID

链接

“类型”表包含未达到结果的原因。字段包括Type.IDType.Description和其他一些字段。 Type.Description包含所有不同的原因。

Outcomes表包含各种字段,但主要包含用于链接每种不同类型的ID的列,如下所示:

Outcomes.Outcomes1aMain_ID
Outcomes.Outcomes1aSecond_ID
Outcomes.Outcomes1bMain_ID
Outcomes.Outcomes1bSecond_ID
Outcomes.Outcomes2aMain_ID
Outcomes.Outcomes2aSecond_ID

等等。

这些结果各自由Outcomes.Outcomes1aMain_ID = Type.ID ......链接。

我的目标是创建客户报告和每个结果的原因如下:

Client.Name, Outcome 1a, Outcome 1b, Outcome 2a, Outcome 2b ...。其中每个结果可能有多个原因。因此,在每个结果下,查询将为Outcomes1aMain_ID + Outcomes1aSecond_ID。请注意,_ID将替换为Type.Description

我希望有一种更好的方法,而不是加入Type表多次(60)次,然后查询每个实例。一些结果将是NULL,因此我还必须使用CASE+的组合来获得每个结果。

我的想法是利用XML PATH来显示结果,但我不确定如何最好地获取数据。

除非加入每个实例是最好的方法。

谢谢

0 个答案:

没有答案