我正在尝试使用MSSql 2008中的三个表创建一个新视图: 表1包含客户ID和交易ID 表1
CustomerID TransactionID
1 1
1 2
表2包含采购交易和产品ID
TransactionID ProductID
1 x
2 y
表3包含产品名称
ProductID Name
1 x
2 y
我认为我想要显示
CustomerID Product Name
1 x, y
当我使用以下查询时:
SELECT table1. CustomerID, table3.Name
FROM table1 LEFT OUTER JOIN
Table2 ON table2. TransactionID = table1.VisitId LEFT OUTER JOIN
Table3 ON table2. ProductID = Table3. ProductID
GROUP BY table1. CustomerID, table3.Name
我得到了
CustomerID Product Name
1 x
1 y
先谢谢
答案 0 :(得分:0)
执行此操作的一种方法是使用用户定义的函数,例如:
SELECT table1.CustomerID, dbo.BuildStringOfCustomerProductNames(table1.CustomerID)
FROM table1
并创建一个用户定义的函数,如:dbo.BuildStringOfCustomerProductNames 以customerid作为输入。 在那里,你可以运行一个查询循环遍历表2和表3连接记录来创建一个字符串,然后返回。
我无法想到其他任何简单的方法。