我们有一个公司详细信息表和另一个链接到这些公司的联系人表,因此每个公司可以有多个联系人。有人要检查联系人表并将每个公司的联系人减少到 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 将一个表中的多行插入到另一个表的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20283567/