Level Date Total Good Total Good with Age Value
Good 4/25/2011 4194 2369
5/2/2011 3686 2528
5/11/2011 2021 1058
5/16/2011 2211 1384
5/19/2011 3181 1008
5/23/2011 2618 725
5/24/2011 2288 525
5/31/2011 1684 555
6/8/2011 1523 688
6/13/2011 1390 521
6/20/2011 6386 196
6/27/2011 4618 214
ASKER
ASKER
ASKER
select
t2.Name
t2.RatingDescription,
t2.Days,
t2.Date
from
(select t1.Name,
CASE
WHEN t1.Rating >= 22 THEN 'Critical'
WHEN t1.Rating between 20 and 21 THEN 'High'
WHEN t1.Rating between 18 and 19 THEN 'Medium'
WHEN t1.Rating between 0 and 17 THEN 'Low'
ELSE 'n/a'
END as RatingDesc,
CASE
WHEN t1.Days > 14 THEN '14'
WHEN t1.Days > 30 THEN '30'
WHEN t1.Days > 60 THEN '60'
WHEN t1.Days > 90 THEN '90'
ELSE '0'
END as Days,
t1.Date
from
(SELECT Items
FROM tables
)t1
)t2
ASKER
ASKER
Create Proc DSWX_VulnRatingSummary (@Rating varchar(50), @Aging int)
AS
BEGIN
DECLARE @Nth int, @MaxGoBack int, @Today datetime
SET @Nth = 7
SET @MaxGoBack = 90
SET @Today = DATEADD(day, DATEDIFF(day, '1900-01-01', GETDATE()), '1900-01-01')
select TotalsForRating.DateDetected, TotalsForRating.Total as Rating, TotalsForAging.total as total
from
(
SELECT t3.DateDetected, COUNT(t3.VulnName) AS Total
from
(
select
t2.DeviceName,
t2.IPAddress,
t2.VulnName,
t2.VulnDescription,
t2.ScanSource,
convert(varchar,t2.DateDetected,101) as DateDetected,
t2.Aging,
t2.AgingDays,
t2.DSWX_VulnRating,
t2.DSWX_VulnRatingDesc,
t2.VendorSeverity,
t2.VendorSeverityValue
from
(select t1.DeviceName,
t1.IPAddress,
t1.VulnID,
t1.VulnName,
t1.VulnDescription,
t1.ScanSource,
t1.VendorSeverity,
t1.VendorSeverityValue,
CASE
WHEN t1.DSWX_VulnRating >= 22 THEN 'Critical'
WHEN t1.DSWX_VulnRating between 20 and 21 THEN 'High'
WHEN t1.DSWX_VulnRating between 18 and 19 THEN 'Medium'
WHEN t1.DSWX_VulnRating between 0 and 17 THEN 'Low'
ELSE 'n/a'
END as DSWX_VulnRatingDesc,
t1.DSWX_VulnRating,
CASE
WHEN t1.AgingDays > 14 THEN '14'
WHEN t1.AgingDays > 30 THEN '30'
WHEN t1.AgingDays > 60 THEN '60'
WHEN t1.AgingDays > 90 THEN '90'
ELSE '0'
END as Aging,
t1.AgingDays,
t1.DateDetected
from
(SELECT h.DeviceName,
h.IPAddress,
v.VulnID,
v.VulnName,
v.VulnDescription,
h.RiskRatingAsset,
v.RiskRatingVuln,
sc.Value AS VendorSeverityValue,
h.RiskRatingCounter AS RiskCounterMeasuresRating,
h.RiskRatingAsset + sc.Value + v.RiskRatingVuln - h.RiskRatingCounter AS DSWX_VulnRating,
v.Severity AS VendorSeverity,
v.DateDetected,
v.AgingDays,
v.ScanSource
FROM dbo.SWRX_SeverityConversionTable sc RIGHT OUTER JOIN dbo.SWRX_MasterVulnerabilityList v
ON sc.Severity = v.Severity
RIGHT OUTER JOIN dbo.SWRX_MasterHost h
ON v.DeviceName = h.DeviceName
WHERE (NOT (v.VulnName LIKE 'CD-%'))
)t1
)t2
where t2.ScanSource <> 'Sherlock'
)t3
WHERE t3.DSWX_VulnRatingDesc = @Rating
and t3.DateDetected < @Today AND
t3.DateDetected >= DATEADD(day, -@MaxGoBack, @Today) AND
(DATEDIFF(day, @Today, t3.DateDetected) % @Nth) = 0
group by t3.DateDetected
) as TotalsForRating,
(
SELECT t3.DateDetected, COUNT(t3.VulnName) AS Total
from
(
select
t2.DeviceName,
t2.IPAddress,
t2.VulnName,
t2.VulnDescription,
t2.ScanSource,
convert(varchar,t2.DateDetected,101) as DateDetected,
t2.Aging,
t2.AgingDays,
t2.DSWX_VulnRating,
t2.DSWX_VulnRatingDesc,
t2.VendorSeverity,
t2.VendorSeverityValue
from
(select t1.DeviceName,
t1.IPAddress,
t1.VulnID,
t1.VulnName,
t1.VulnDescription,
t1.ScanSource,
t1.VendorSeverity,
t1.VendorSeverityValue,
CASE
WHEN t1.DSWX_VulnRating >= 22 THEN 'Critical'
WHEN t1.DSWX_VulnRating between 20 and 21 THEN 'High'
WHEN t1.DSWX_VulnRating between 18 and 19 THEN 'Medium'
WHEN t1.DSWX_VulnRating between 0 and 17 THEN 'Low'
ELSE 'n/a'
END as DSWX_VulnRatingDesc,
t1.DSWX_VulnRating,
CASE
WHEN t1.AgingDays > 14 THEN '14'
WHEN t1.AgingDays > 30 THEN '30'
WHEN t1.AgingDays > 60 THEN '60'
WHEN t1.AgingDays > 90 THEN '90'
ELSE '0'
END as Aging,
t1.AgingDays,
t1.DateDetected
from
(SELECT h.DeviceName,
h.IPAddress,
v.VulnID,
v.VulnName,
v.VulnDescription,
h.RiskRatingAsset,
v.RiskRatingVuln,
sc.Value AS VendorSeverityValue,
h.RiskRatingCounter AS RiskCounterMeasuresRating,
h.RiskRatingAsset + sc.Value + v.RiskRatingVuln - h.RiskRatingCounter AS DSWX_VulnRating,
v.Severity AS VendorSeverity,
v.DateDetected,
v.AgingDays,
v.ScanSource
FROM dbo.SWRX_SeverityConversionTable sc RIGHT OUTER JOIN dbo.SWRX_MasterVulnerabilityList v
ON sc.Severity = v.Severity
RIGHT OUTER JOIN dbo.SWRX_MasterHost h
ON v.DeviceName = h.DeviceName
WHERE (NOT (v.VulnName LIKE 'CD-%'))
)t1
)t2
where t2.ScanSource <> 'Sherlock'
)t3
WHERE t3.DSWX_VulnRatingDesc = @Rating and t3.Aging = @Aging
and t3.DateDetected < @Today AND
t3.DateDetected >= DATEADD(day, -@MaxGoBack, @Today) AND
(DATEDIFF(day, @Today, t3.DateDetected) % @Nth) = 0
group by t3.DateDetected
) as TotalsForAging
end
Create View View_DSWX_VulnRatingSummary_SourceData as
SELECT h.DeviceName,
h.IPAddress,
v.VulnID,
v.VulnName,
v.VulnDescription,
CASE
WHEN t1.DSWX_VulnRating >= 22 THEN 'Critical'
WHEN t1.DSWX_VulnRating between 20 and 21 THEN 'High'
WHEN t1.DSWX_VulnRating between 18 and 19 THEN 'Medium'
WHEN t1.DSWX_VulnRating between 0 and 17 THEN 'Low'
ELSE 'n/a'
END as DSWX_VulnRatingDesc,
h.RiskRatingAsset,
v.RiskRatingVuln,
sc.Value AS VendorSeverityValue,
h.RiskRatingCounter AS RiskCounterMeasuresRating,
h.RiskRatingAsset + sc.Value + v.RiskRatingVuln - h.RiskRatingCounter AS DSWX_VulnRating,
v.Severity AS VendorSeverity,
v.DateDetected,
v.AgingDays,
CASE
WHEN v.AgingDays > 14 THEN '14'
WHEN v.AgingDays > 30 THEN '30'
WHEN v.AgingDays > 60 THEN '60'
WHEN v.AgingDays > 90 THEN '90'
ELSE '0'
END as Aging,
v.ScanSource
FROM dbo.SWRX_SeverityConversionTable sc RIGHT OUTER JOIN dbo.SWRX_MasterVulnerabilityList v
ON sc.Severity = v.Severity
RIGHT OUTER JOIN dbo.SWRX_MasterHost h
ON v.DeviceName = h.DeviceName
WHERE (NOT (v.VulnName LIKE 'CD-%'))
ScanSource <> 'Sherlock'
GO
Create Proc DSWX_VulnRatingSummary (@Rating varchar(50), @Aging int)
AS
BEGIN
DECLARE @Nth int, @MaxGoBack int, @Today datetime
SET @Nth = 7
SET @MaxGoBack = 90
SET @Today = DATEADD(day, DATEDIFF(day, '1900-01-01', GETDATE()), '1900-01-01')
select distinct
v1.DateDetected,
(Select count(v2.VulName) from View_DSWX_VulnRatingSummary_SourceData v2
WHERE v2.DSWX_VulnRatingDesc = @Rating
and v2.DateDetected < @Today AND
v2.DateDetected >= DATEADD(day, -@MaxGoBack, @Today) AND
(DATEDIFF(day, @Today, v2.DateDetected) % @Nth) = 0) as TotalForRating,
(Select count(v3.VulName) from View_DSWX_VulnRatingSummary_SourceData v3 WHERE v3.DSWX_VulnRatingDesc = @Rating and v3.Aging = @Aging
and v3.DateDetected < @Today AND
v3.DateDetected >= DATEADD(day, -@MaxGoBack, @Today) AND
(DATEDIFF(day, @Today, v3.DateDetected) % @Nth) = 0) as TotalForAging,
from View_DSWX_VulnRatingSummary_SourceData v1
end
ASKER
ASKER
Microsoft SQL Server 2008 is a suite of relational database management system (RDBMS) products providing multi-user database access functionality.Component services include integration (SSIS), reporting (SSRS), analysis (SSAS), data quality, master data, T-SQL and performance tuning. Major improvements include the Always On technologies and support for unstructured data types.
TRUSTED BY