需要一些帮助来为SQL Server 2008上的以下方案提供数据透视表。我通常不会做比基本SQL查询更多的操作,而且这个查询让我有点难住。如何创建数据透视表查询?
查看#1 - v_R_System(需要从这里NAME0列) 查看#2 - v_GS_ADD_REMOVE_PROGRAMS(需要DisplayName0从这里)
非关键查询看起来是这样的:
SELECT DISTINCT sys.Name0 AS [SYSTEM NAME], arp_x86.DisplayName0 AS [ADD/REMOVE PROGRAMS]
FROM v_R_System AS sys LEFT OUTER JOIN
v_GS_ADD_REMOVE_PROGRAMS AS arp_x86 ON sys.ResourceID = arp_x86.ResourceID
WHERE (sys.Name0 LIKE 'SRV%')
GROUP BY arp_x86.DisplayName0, sys.Name0
结果从上面的查询中只显示两列,一列用于系统名称,另一列用于添加/删除程序数据。
System Name Add/Remove Programs
------------------------------------
SRV01 APP01
SRV01 APP02
SRV01 APP03
SRV02 APP01
SRV02 APP03
的问题是,我们得到每个服务器的多个行,所以我们想,而不是什么是有1行中的每个服务器,但有在顶部显示,然后软件列表中把“*”的一个软件列,如果它安装在特定的服务器上。
System Name APP01 APP02 APP03
------------------------------------------
SRV01 * * *
SRV02 * *
任何帮助非常感谢!
谢谢。
它是mysql还是sql-server?请选择一个,然后拿出另一个标签。 –
是服务器数量有限吗?或可以无限? –
[PIVOT](http://technet.microsoft.com/en-us/library/ms177410%28v=sql.105%29.aspx)可以在这里显示,只要您知道列的名称即可将在应用之后形成。 – user2989408