I am having data query with me it gives version of windows update
x
DECLARE @variable VARCHAR
SET @variable = 'Windows client Update'
SELECT DISTINCT (v_GS_WINDOWSUPDATEAGENTVERSIO.Version0) AS version,
count(v_R_System.Netbios_Name0) AS modelcount,
'Windows client Update' AS productname,
(
CAST((
CAST(count(*) AS DECIMAL(18, 2)) / CAST((
SELECT count(v_R_System.Netbios_Name0)
FROM v_R_System
) AS DECIMAL(18, 2))
) * 100 AS DECIMAL(18, 2))
) AS 'Percent',
'%' AS per
FROM v_GS_WINDOWSUPDATEAGENTVERSIO
INNER JOIN v_R_System ON v_GS_WINDOWSUPDATEAGENTVERSIO.ResourceID = v_R_System.ResourceID
WHERE v_GS_WINDOWSUPDATEAGENTVERSIO.Version0 <> 'ISNULL'
--ORDER BY v_GS_WINDOWSUPDATEAGENTVERSIO.Version0
GROUP BY v_GS_WINDOWSUPDATEAGENTVERSIO.Version0
output we are getting
version modelcount productname Percent per
10.0.14393.0 2 Windows client Update 0.00 %
10.0.14393.1670 84 Windows client Update 0.11 %
10.0.14393.2189 2 Windows client Update 0.00 %
10.0.14393.2273 3 Windows client Update 0.00 %
10.0.14393.2395 265 Windows client Update 0.33 %
10.0.14393.2608 3 Windows client Update 0.00 %
10.0.14393.351 7 Windows client Update 0.01 %
10.0.15063.0 480 Windows client Update 0.61 %
10.0.15063.1155 11 Windows client Update 0.01 %
10.0.15063.1235 278 Windows client Update 0.35 %
10.0.15063.1292 29 Windows client Update 0.04 %
10.0.15063.1446 8455 Windows client Update 10.67 %
10.0.15063.483 161 Windows client Update 0.20 %
10.0.15063.966 1 Windows client Update 0.00 %
10.0.16299.637 1 Windows client Update 0.00 %
10.0.17134.1 10 Windows client Update 0.01 %
10.0.17134.320 2 Windows client Update 0.00 %
10.0.17134.376 2 Windows client Update 0.00 %
10.0.17134.471 231 Windows client Update 0.29 %
10.0.17763.107 10 Windows client Update 0.01 %
10.0.17763.168 10 Windows client Update 0.01 %
10.0.17763.292 55 Windows client Update 0.07 %
10.0.18282.1000 1 Windows client Update 0.00 %
7.4.7600.226 571 Windows client Update 0.72 %
7.5.7601.17514 27 Windows client Update 0.03 %
7.6.7600.256 606 Windows client Update 0.76 %
7.6.7600.320 1 Windows client Update 0.00 %
7.6.7601.19016 10 Windows client Update 0.01 %
7.6.7601.19161 80 Windows client Update 0.10 %
7.6.7601.23735 129 Windows client Update 0.16 %
7.6.7601.23806 6489 Windows client Update 8.19 %
7.6.7601.24085 51081 Windows client Update 64.46 %
7.8.9200.16384 2 Windows client Update 0.00 %
7.8.9200.16547 171 Windows client Update 0.22 %
7.9.9600.16403 15 Windows client Update 0.02 %
7.9.9600.16422 1 Windows client Update 0.00 %
7.9.9600.17092 8 Windows client Update 0.01 %
7.9.9600.17415 11 Windows client Update 0.01 %
7.9.9600.18696 18 Windows client Update 0.02 %
7.9.9600.18838 41 Windows client Update 0.05 %
7.9.9600.18970 200 Windows client Update 0.25 %
7.9.9600.19164 2026 Windows client Update 2.56 %
I need version up to 3 dots like 7.6.7601 or 7.9.9600 and count be addition of following
10.0.14393.0 2 Windows client Update 0.00 %
10.0.14393.1670 84 Windows client Update 0.11 %
10.0.14393.2189 2 Windows client Update 0.00 %
10.0.14393.2273 3 Windows client Update 0.00 %
10.0.14393.2395 265 Windows client Update 0.33 %
10.0.14393.2608 3 Windows client Update 0.00 %
10.0.14393.351 7
84+2+3+265+3+7 in table
Means I will be needing one row for version 10.0.14393 total count
Advertisement
Answer
The following will create a substring of version0
up to but not including the last dot and anything after that dot
SELECT SUBSTRING(v.version0, 1,
LEN(v.version0) - CHARINDEX('.', REVERSE(v.version0))) AS version
I have used an alias for the table name to make it more readable
FROM v_GS_WINDOWSUPDATEAGENTVERSIO AS v