【发布时间】:2017-06-29 00:23:50
【问题描述】:
我正在寻找一份基本报告,在我的数据库中,我的主表中有一些项目代表硬件、软件应用程序等,这些项目与它所属的平台有多对多的关系。
如果一条记录有多个平台,我希望它在以逗号分隔的列中收听
数据库布局示例
所以基本上我想大致如下构造我的查询。
SELECT cat.CategoryName, sub.SubCategoryName, cur.Model, cur.Version, cur.Vendor, -- >pla.PlatformName, <--
cur.AvailableDate, cur.EndOfProduction, cur.EndOfSupport, dep.DepartmentName,
emp.FirstName + ' ' +emp.LastName AS 'Tech Owner', emp2.FirstName +' ' + emp2.LastName AS 'Tech Contact',
cur.NumOfDevices, cur.UpgradeDuration, cur.FiscalConsideration
FROM
dbo.Currency Cur
INNER JOIN dbo.SubCategory sub
ON cur.SubCategoryId = sub.SubCategoryId
INNER JOIN dbo.Category cat
ON sub.CategoryId = cat.CategoryId
INNER JOIN dbo.Employee emp
ON cur.OwnerId = emp.EmployeeId
INNER JOIN dbo.Employee emp2
ON cur.ContactId= emp2.EmployeeId
INNER JOIN dbo.Department dep
ON cur.PortfolioOwnerId = dep.DepartmentId
LEFT JOIN dbo.Currency_Dependency cd
ON cur.CurrencyId = cd.CurrencyId
LEFT JOIN dbo.Currency_Affected ca
ON cur.CurrencyId = ca.CurrencyId
LEFT JOIN dbo.Currency_Platform cpla
ON cur.CurrencyId = cpla.CurrencyId
Left JOIN dbo.Platform pla
ON cpla.PlatformId = pla.PlatformId
GO
因此,如果我在该查询中有平台名称,我想将其构建为以逗号分隔的列表,但我不知道该怎么做。 如果有的话,你们中的一个人能指导我走上正确的道路吗?这样的方式。最终,我想通过参数或过滤器通过 SSRS(在 Visual Studio 2015 中使用 SSDT)构建报告,但我可以进一步研究它,因为我只是在学习它并正在阅读它。
提前谢谢你
【问题讨论】:
-
这是一个很好的、写得很好的问题。但是您可以通过为当前查询提供一个示例结果集和一个显示您正在尝试完成的内容来改进它。这将有助于其他人重现您的数据。你是对的,现在这更像是一个 SQL 问题而不是一个 SSRS 问题。
-
您的意思是要选择
PlatforName吗?或者您能否具体说明在这种情况下您的真正问题是什么?
标签: sql reporting-services sql-server-2012