我们有一张公司详细信息表,还有与这些公司链接的另一张联系人表,因此每个公司可以有很多联系人。有人将通过联系表,将每个公司的联系减少到2个。

然后,他们需要创建公司详细信息表,并将联系人表中的每个联系人添加到列末尾,例如: [Contact1Name],[Contact1Tel],[Contact2Name],[Contact2Tel]。

为了使所有信息都放在一个表/电子表格中,有没有一种方法可以通过tsql自动执行此操作,还是必须手动执行?

每个联系人都通过公司ID列链接到公司。

谢谢你的帮助。

最佳答案

您可以像这样提取数据:

WITH idList AS
(
    SELECT CompanyID,
           MIN(ContactID) as id1,
           MAX(ContactId) as id2
    FROM Contact GROUP BY CompanyID
)
SELECT c.*,c1.*,c2.*
FROM Company c
INNER JOIN idList ON c.CompanyID = idList.CompanyID
INNER JOIN Contact c1 ON c1.ContactId = idList.id1
INNER JOIN Contact c2 ON c2.ContactId = idList.id2


您将获得公司数据(c)和两个联系人的数据(c1和c2)

关于sql - SQL将一个表中的多行插入另一表中的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20283567/

10-11 03:40