单行返回查询结果

时间:2020-02-15 19:13:42

标签: sql-server

我试图列出安装在我们系统上的.Net版本,由于某种原因,我的查询将结果返回到4.0版本的单独一行中。这是我的查询;

SELECT sys1.Netbios_NSELECT sys1.Netbios_Name0 AS Computername
    ,Max(CASE dn.Version0
            WHEN '1.0'
                THEN CASE dn.BuildNumber0
                        WHEN IsNull(dn.BuildNumber0, 1)
                            THEN dn.BuildNumber0
                        END
            END) AS [.Net 1.0]
    ,Max(CASE dn.Version0
            WHEN '1.1'
                THEN CASE dn.BuildNumber0
                        WHEN IsNull(dn.BuildNumber0, 1)
                            THEN dn.BuildNumber0
                        END
            END) AS [.Net 1.1]
    ,Max(CASE dn.Version0
            WHEN '2.0'
                THEN CASE dn.BuildNumber0
                        WHEN IsNull(dn.BuildNumber0, 1)
                            THEN dn.BuildNumber0
                        END
            END) AS [.Net 2.0]
    ,Max(CASE dn.Version0
            WHEN '3.0'
                THEN CASE dn.BuildNumber0
                        WHEN IsNull(dn.BuildNumber0, 1)
                            THEN dn.BuildNumber0
                        END
            END) AS [.Net 3.0]
    ,Max(CASE dn.Version0
            WHEN '3.5'
                THEN CASE dn.BuildNumber0
                        WHEN IsNull(dn.BuildNumber0, 1)
                            THEN dn.BuildNumber0
                        END
            END) AS [.Net 3.5]
    ,Max(CASE dn.Version0
            WHEN '3.5'
                THEN CASE dn.ServicePack0
                        WHEN IsNull(dn.ServicePack0, 1)
                            THEN dn.ServicePack0
                        END
            END) AS [.Net 3.5 ServicePack]
    ,Max(CASE dn.Version0
            WHEN '4.0'
                THEN CASE dn.BuildNumber0
                        WHEN IsNull(dn.BuildNumber0, 1)
                            THEN dn.BuildNumber0
                        END
            END) AS [.Net 4.0]
    ,Max(CASE dn.Version0
            WHEN '4.0'
                THEN CASE dn.Release0
                        WHEN IsNull(dn.Release0, 1)
                            THEN dn.Release0
                        END
            END) AS [.Net 4.0 Release]
    ,ConfigurationManager_002.dbo.v_GS_SYSTEM.Domain0 AS Domain
    ,sys1.Operating_System_Name_and0 AS Operating_System
    ,ConfigurationManager_002.dbo.v_GS_WORKSTATION_STATUS.LastHWScan
FROM v_r_system_valid sys1
LEFT JOIN v_gs_dotnetframeworks0 dn ON dn.ResourceID = sys1.ResourceID
LEFT JOIN ConfigurationManager_002.dbo.v_GS_SYSTEM ON sys1.ResourceID = ConfigurationManager_002.dbo.v_GS_SYSTEM.ResourceID
LEFT JOIN ConfigurationManager_002.dbo.v_GS_WORKSTATION_STATUS ON ConfigurationManager_002.dbo.v_GS_WORKSTATION_STATUS.ResourceID = sys1.ResourceID
GROUP BY sys1.Netbios_Name0
    ,dn.Release0
    ,ConfigurationManager_002.dbo.v_GS_SYSTEM.Domain0
    ,sys1.Operating_System_Name_and0
    ,ConfigurationManager_002.dbo.v_GS_WORKSTATION_STATUS.LastHWScan
ORDER BY ComputerName

我的结果显示为这样;

查询结果

enter image description here

0 个答案:

没有答案