【发布时间】:2022-01-07 02:15:57
【问题描述】:
处理一个非常脱节的数据库(必须自己找到每个表的键),需要从中获取一个可行的数据集,这需要为主数据集桥接大约 4 个表。我的问题在表 2 上,每个个人帐户都附加到多个帐户,然后导致状态代码。所以不是想要的:
| Person | ETC | Codes |
|---|---|---|
| P1 | XXX | Code1, Code2, Etc |
| P2 | XXX | Code1, Code2, Etc |
它改为输出:
| Person | ETC | Codes |
|---|---|---|
| P1 | XXX | Code1 |
| P1 | XXX | Code2 |
| P2 | XXX | Code1 |
| P2 | XXX | Code2 |
代码目前接近这个:
SELECT P.PersonID, (A few more P.values), CD.Codes
FROM (((Table1 as P
INNER JOIN Table2 as t2 ON P.PersonID = t2.PersonFID)
INNER JOIN Table3 as T3 ON T2.ID2 = T3.ID)
INNER JOIN TableCD as CD ON T3.ID2 = CD.ID)
我花了几个小时尝试使用 WHERE PersonID IN(etc) 通过嵌套选择查询和链接它们,但结果大致相同。我也无法通过 GROUP BY 将它们全部设置为相同。我不知道该怎么做,任何帮助将不胜感激。如果已经有答案,我深表歉意,我一直在拉头发并且看了很多,但我可能会错过它。最终目标是创建一个包含所有信息的新表。
【问题讨论】:
-
请显示示例数据。看起来你需要string_agg()
-
我很抱歉花了这么长时间,忙碌的周末。您指的是数据样本的哪一部分?和代码一样?
标签: sql database sql-server-2019