examples of functions, stored procs, queries

58
FORMULA FOR A LINE y=mx +b FORMULA FOR SLOPE m m=r ( S y S x ) FORMULA FOR CORRELATION COEFFICIENT r r= n xyx y ( n x 2 x 2 ) ( n y 2 y 2 ) INCREASE OR DECREASE OF LINE b b= ym x STANDARD DEVIATION S y S x AVERAGE OR MEAN yx FORMULA FOR A LINE BROKEN DOWN FOR SQL CODE

Upload: bill-jones

Post on 13-Apr-2017

301 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Examples of Functions, Stored Procs, Queries

FORMULA FOR A LINE

y=mx+b

FORMULA FOR SLOPE m

m=r ( S ySx )FORMULA FOR CORRELATION COEFFICIENT r

r=n∑ xy−∑ x∑ y

√ (n∑ x2−∑ x2)√(n∑ y2−∑ y

2)

INCREASE OR DECREASE OF LINE b

b= y−mx

STANDARD DEVIATION

Sy∨Sx

AVERAGE OR MEAN

y∨x

FORMULA FOR A LINE BROKEN DOWN FOR SQL CODE

y=n∑ xy−∑ x∑ y

√ (n∑ x2−∑ x2 )√(n∑ y2−∑ y

2 ) (S ySx )x+ y−

n∑ xy−∑ x∑ y

√ (n∑ x2−∑ x2 )√(n∑ y2−∑ y

2) (S ySx )x

--**************************************************************

Page 2: Examples of Functions, Stored Procs, Queries

--FUNCTION: MAKE REGRESSION TABLE--**************************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- ===========================================================-- Author: Bill Jones-- Create date: 6/8/2015-- Description: Generates a single table with KPI -- values and REGRESSION values -- INPUT the month and the KPI measure-- RETURNS rolling 13 months of data for all 13 KPI columns-- ============================================================CREATE FUNCTION [dbo].[udf_MakeAll_KPI_REG_Data_4Test](

@End_Month INT,@KPI_Test INT)

RETURNS @REGTABLE TABLE(myDomain VARCHAR(30), myGroup VARCHAR(30), myTeam VARCHAR(30), myRank INT, myMonth INT, myKPI DECIMAL(12,4),myReg DECIMAL(12,4),myID INT,

Page 3: Examples of Functions, Stored Procs, Queries

myTest INT)ASBEGIN

INSERT INTO @REGTABLE(myDomain,myGroup,myTeam,myRank,myMonth,myKPI,myReg,myID,myTest)

SELECT DISTINCTR.Domain AS 'aDomain',R.[Group] AS 'aGroup',R.Team AS 'aTeam',R.PS_Rank AS 'aRank',@End_Month AS 'aMonth',CASE @KPI_Test

WHEN 1 THEN ROUND((SUM(CAST(R.[Successful Value] AS FLOAT)) / COUNT(CAST(R.[Successful Value] AS FLOAT))), 4)

WHEN 2 THEN ROUND((SUM(CAST(R.[Type_1_Day] AS FLOAT)) / COUNT(CAST(R.[Type_1_Day] AS FLOAT))), 4)

WHEN 3 THEN ROUND((SUM(CAST(R.[Type_2_Day] AS FLOAT)) / COUNT(CAST(R.[Type_2_Day] AS FLOAT))), 4)

WHEN 4 THEN ROUND((SUM(CAST(R.[Type_Not_Early] AS FLOAT)) / COUNT(CAST(R.[Type_Not_Early] AS FLOAT))), 4)

WHEN 5 THEN ROUND((SUM(CAST(R.[Type_Not_Late] AS FLOAT)) / COUNT(CAST(R.[Type_Not_Late] AS FLOAT))), 4)

WHEN 6 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] < 2 THEN CAST(R.[Type_AA_Planned] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] < 2 THEN CAST(R.[Type_AA_Planned] AS FLOAT) END)), 4)

Page 4: Examples of Functions, Stored Procs, Queries

WHEN 7 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Urgent] < 2 THEN CAST(R.[Type_AA_Urgent] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Urgent] < 2 THEN CAST(R.[Type_AA_Urgent] AS FLOAT) END)), 4)

WHEN 8 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Emergency] < 2 THEN CAST(R.[Type_AA_Emergency] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Emergency] < 2 THEN CAST(R.[Type_AA_Emergency] AS FLOAT) END)), 4)

WHEN 9 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] <> 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] <> 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END)), 4)

WHEN 10 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] = 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] = 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END)), 4)

END AS 'aKPI',NULL AS 'aReg',G.ID AS 'myID',@KPI_Test AS 'myTest'

FROM STDB.dbo.vw_cm_dash_R15 R, STDB.dbo.tbl_reporting_group G WHERE R.Domain = 'EIT Domain'

AND R.PS_Rank < @End_Month + 1AND R.PS_Rank > @End_Month - 13AND R.Team IS NOT NULLAND R.Domain = G.DomainAND R.[Group] = G.[Group]AND R.Team = G.Team

GROUP BY R.Domain, R.[Group], R.PS_Rank, R.Team, G.ID

UNION ALL

SELECT DISTINCTR.Domain AS 'aDomain',R.[Group] AS 'aGroup',NULL AS 'aTeam',R.PS_Rank AS 'aRank',

Page 5: Examples of Functions, Stored Procs, Queries

@End_Month AS 'aMonth',CASE @KPI_Test

WHEN 1 THEN ROUND((SUM(CAST(R.[Successful Value] AS FLOAT)) / COUNT(CAST(R.[Successful Value] AS FLOAT))), 4)

WHEN 2 THEN ROUND((SUM(CAST(R.[Type_1_Day] AS FLOAT)) / COUNT(CAST(R.[Type_1_Day] AS FLOAT))), 4)

WHEN 3 THEN ROUND((SUM(CAST(R.[Type_2_Day] AS FLOAT)) / COUNT(CAST(R.[Type_2_Day] AS FLOAT))), 4)

WHEN 4 THEN ROUND((SUM(CAST(R.[Type_Not_Early] AS FLOAT)) / COUNT(CAST(R.[Type_Not_Early] AS FLOAT))), 4)

WHEN 5 THEN ROUND((SUM(CAST(R.[Type_Not_Late] AS FLOAT)) / COUNT(CAST(R.[Type_Not_Late] AS FLOAT))), 4)

WHEN 6 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] < 2 THEN CAST(R.[Type_AA_Planned] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] < 2 THEN CAST(R.[Type_AA_Planned] AS FLOAT) END)), 4)

WHEN 7 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Urgent] < 2 THEN CAST(R.[Type_AA_Urgent] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Urgent] < 2 THEN CAST(R.[Type_AA_Urgent] AS FLOAT) END)), 4)

WHEN 8 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Emergency] < 2 THEN CAST(R.[Type_AA_Emergency] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Emergency] < 2 THEN CAST(R.[Type_AA_Emergency] AS FLOAT) END)), 4)

WHEN 9 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] <> 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] <> 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END)), 4)

WHEN 10 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] = 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] = 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END)), 4)

END AS 'aKPI',NULL AS 'aReg',G.ID AS 'myID',@KPI_Test AS 'myTest'

FROM STDB.dbo.vw_cm_dash_R15 R, STDB.dbo.tbl_reporting_group G WHERE R.Domain = 'EIT Domain'

Page 6: Examples of Functions, Stored Procs, Queries

AND R.PS_Rank < @End_Month + 1AND R.PS_Rank > @End_Month - 13AND (R.[Group] = 'App Support' OR R.[Group] = 'Billing' OR R.[Group] =

'Communications' OR R.[Group] = 'Infra Ops' OR R.[Group] = 'Partner Brands')AND R.Domain = G.DomainAND R.[Group] = G.[Group]AND (G.ID = 19 OR G.ID = 20 OR G.ID = 2 OR G.ID = 11 OR G.ID = 12)

GROUP BY R.Domain, R.[Group], R.PS_Rank, G.ID

UNION ALL

SELECT DISTINCTR.Domain AS 'aDomain',NULL AS 'aGroup',NULL AS 'aTeam',R.PS_Rank AS 'aRank',@End_Month AS 'aMonth',CASE @KPI_Test

WHEN 1 THEN ROUND((SUM(CAST(R.[Successful Value] AS FLOAT)) / COUNT(CAST(R.[Successful Value] AS FLOAT))), 4)

WHEN 2 THEN ROUND((SUM(CAST(R.[Type_1_Day] AS FLOAT)) / COUNT(CAST(R.[Type_1_Day] AS FLOAT))), 4)

WHEN 3 THEN ROUND((SUM(CAST(R.[Type_2_Day] AS FLOAT)) / COUNT(CAST(R.[Type_2_Day] AS FLOAT))), 4)

WHEN 4 THEN ROUND((SUM(CAST(R.[Type_Not_Early] AS FLOAT)) / COUNT(CAST(R.[Type_Not_Early] AS FLOAT))), 4)

WHEN 5 THEN ROUND((SUM(CAST(R.[Type_Not_Late] AS FLOAT)) / COUNT(CAST(R.[Type_Not_Late] AS FLOAT))), 4)

WHEN 6 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] < 2 THEN CAST(R.[Type_AA_Planned] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] < 2 THEN CAST(R.[Type_AA_Planned] AS FLOAT) END)), 4)

Page 7: Examples of Functions, Stored Procs, Queries

WHEN 7 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Urgent] < 2 THEN CAST(R.[Type_AA_Urgent] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Urgent] < 2 THEN CAST(R.[Type_AA_Urgent] AS FLOAT) END)), 4)

WHEN 8 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Emergency] < 2 THEN CAST(R.[Type_AA_Emergency] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Emergency] < 2 THEN CAST(R.[Type_AA_Emergency] AS FLOAT) END)), 4)

WHEN 9 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] <> 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] <> 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END)), 4)

WHEN 10 THEN ROUND((SUM(CASE WHEN R.[Type_AA_Planned] = 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END) / COUNT(CASE WHEN R.[Type_AA_Planned] = 2 THEN CAST(R.[Type_1_Day] AS FLOAT) END)), 4)

END AS 'aKPI',NULL AS 'aReg',G.ID AS 'myID',@KPI_Test AS 'myTest'

FROM STDB.dbo.vw_cm_dash_R15 R, STDB.dbo.tbl_reporting_group G WHERE R.Domain = 'EIT Domain'

AND R.PS_Rank < @End_Month + 1AND R.PS_Rank > @End_Month - 13AND G.ID = 21

GROUP BY R.Domain, R.PS_Rank, G.IDORDER BY R.Domain, R.[Group], R.Team, R.PS_Rank

UPDATE RTSET RT.myReg = CASE @KPI_Test

WHEN 1 THEN KPI.mySuccessWHEN 2 THEN KPI.my1DayWHEN 3 THEN KPI.my2DayWHEN 4 THEN KPI.myEarlyWHEN 5 THEN KPI.myLateWHEN 6 THEN KPI.myPlannedWHEN 7 THEN KPI.myUrgent

Page 8: Examples of Functions, Stored Procs, Queries

WHEN 8 THEN KPI.myEmergencyWHEN 9 THEN KPI.my1DayPlanWHEN 10 THEN KPI.my1DayEmer

END FROM @REGTABLE RTINNER JOIN [STDB].[dbo].[tbl_CM_KPI_regression] KPION RT.myID = KPI.IDAND RT.myMonth = KPI.myMonthAND RT.myRank = KPI.myRank

RETURN END

GO

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- =============================================-- Author: Bill Jones-- Create date: 5/21/2015-- Description: Creates a table of regression line

Page 9: Examples of Functions, Stored Procs, Queries

-- values with up to 3 filters-- =============================================CREATE FUNCTION [dbo].[udf_MakeRegressionTable_CM_KPI](

@domain VARCHAR(30),@group VARCHAR(30),@team VARCHAR(30),@rank INT)

RETURNS @MyRegressionTable TABLE(myDomain VARCHAR(30),myGroup VARCHAR(30),myTeam VARCHAR(30),myRank INT,myMonth INT,mySuccess DECIMAL(12,4), my1Day DECIMAL(12,4),my2Day DECIMAL(12,4),myEarly DECIMAL(12,4),myLate DECIMAL(12,4),myPlanned DECIMAL(12,4),myUrgent DECIMAL(12,4),myEmergency DECIMAL(12,4),my1DayPlan DECIMAL(12,4),my1DayEmer DECIMAL(12,4))

ASBEGIN

INSERT INTO @MyRegressionTable(myDomain,myGroup,myTeam,myRank,myMonth,mySuccess,my1Day,

Page 10: Examples of Functions, Stored Procs, Queries

my2Day,myEarly,myLate,myPlanned,myUrgent,myEmergency,my1DayPlan,my1DayEmer)

SELECT @domain, @group, @team, @rank - 0, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 1, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 2, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 3, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 4, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 5, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 6, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 7, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 8, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 9, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 10, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 11, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0UNION ALLSELECT @domain, @group, @team, @rank - 12, @rank, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;

Page 11: Examples of Functions, Stored Procs, Queries

Declare @num_y decimal(15,10) Declare @den_y decimal(15,10)

Declare @avg_y decimal(15,10)Declare @sd_y decimal(15,10)Declare @sum_y decimal(15,10)Declare @count decimal(15,10)Declare @sd_x decimal(15,10) Declare @sum_x decimal(20,10)Declare @avg_x decimal(20,10) Declare @den_x decimal(20,10) Declare @xy decimal(20,10) Declare @x2 INTDeclare @y2 INTDeclare @r decimal(25,15) Declare @m decimal(25,15)Declare @b decimal(25,15)Declare @y decimal(12,4)

--****************************************-- SUCCESS KPI--****************************************SET @sum_y = (SELECT SUM([Successful Value]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @count = (SELECT COUNT([Successful Value]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Successful Value]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

Page 12: Examples of Functions, Stored Procs, Queries

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Successful Value] AS FLOAT)) FROM [STDB].

[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @y2 = (SELECT SUM([Successful Value] * [Successful Value]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTable

Page 13: Examples of Functions, Stored Procs, Queries

SET mySuccess = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET mySuccess = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- 1 DAY KPI --*****************************************SET @sum_y = (SELECT SUM([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE

[Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @count = (SELECT COUNT([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE

[Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

Page 14: Examples of Functions, Stored Procs, Queries

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_1_Day] AS FLOAT)) FROM [STDB].[dbo].

[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @y2 = (SELECT SUM([Type_1_Day] * [Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6

Page 15: Examples of Functions, Stored Procs, Queries

UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET my1Day = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- 2 DAY KPI --*****************************************SET @sum_y = (SELECT SUM([Type_2_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE

[Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @count = (SELECT COUNT([Type_2_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_2_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE

[Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_x = (@sum_x/@count)

Page 16: Examples of Functions, Stored Procs, Queries

SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_2_Day] AS FLOAT)) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @y2 = (SELECT SUM([Type_2_Day] * [Type_2_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8

Page 17: Examples of Functions, Stored Procs, Queries

UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET my2Day = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- EARLY KPI --*****************************************SET @sum_y = (SELECT SUM([Type_Not_Early]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @count = (SELECT COUNT([Type_Not_Early]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_Not_Early]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_Not_Early] AS FLOAT)) FROM [STDB].

[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

Page 18: Examples of Functions, Stored Procs, Queries

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @y2 = (SELECT SUM([Type_Not_Early] * [Type_Not_Early]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTable

Page 19: Examples of Functions, Stored Procs, Queries

SET myEarly = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET myEarly = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- LATE KPI --*****************************************SET @sum_y = (SELECT SUM([Type_Not_Late]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @count = (SELECT COUNT([Type_Not_Late]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_Not_Late]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_Not_Late] AS FLOAT)) FROM [STDB].

[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13)

Page 20: Examples of Functions, Stored Procs, Queries

SET @y2 = (SELECT SUM([Type_Not_Late] * [Type_Not_Late]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11

Page 21: Examples of Functions, Stored Procs, Queries

UPDATE @MyRegressionTableSET myLate = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- PLANNED KPI --*****************************************SET @sum_y = (SELECT SUM([Type_AA_Planned]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2) SET @count = (SELECT COUNT([Type_AA_Planned]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_AA_Planned]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_AA_Planned] AS FLOAT)) FROM [STDB].

[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS

Page 22: Examples of Functions, Stored Procs, Queries

NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @y2 = (SELECT SUM([Type_AA_Planned] * [Type_AA_Planned]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTable

Page 23: Examples of Functions, Stored Procs, Queries

SET myPlanned = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET myPlanned = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- URGENT KPI --*****************************************SET @sum_y = (SELECT SUM([Type_AA_Urgent]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Urgent] <> 2) SET @count = (SELECT COUNT([Type_AA_Urgent]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Urgent] <> 2)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_AA_Urgent]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Urgent] <> 2)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Urgent] <> 2)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Urgent] <> 2)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_AA_Urgent] AS FLOAT)) FROM [STDB].

[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Urgent] <> 2)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Urgent] <> 2)

Page 24: Examples of Functions, Stored Procs, Queries

SET @y2 = (SELECT SUM([Type_AA_Urgent] * [Type_AA_Urgent]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Urgent] <> 2) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTable

Page 25: Examples of Functions, Stored Procs, Queries

SET myUrgent = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET myUrgent = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- EMERGENCY KPI --*****************************************SET @sum_y = (SELECT SUM([Type_AA_Emergency]) FROM [STDB].[dbo].[vw_cm_dash_R15]

WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Emergency] <> 2) SET @count = (SELECT COUNT([Type_AA_Emergency]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Emergency] <> 2)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_AA_Emergency]) FROM [STDB].[dbo].

[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Emergency] <> 2)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Emergency] <> 2)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Emergency] <> 2)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_AA_Emergency] AS FLOAT)) FROM

[STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Emergency] <> 2)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS

Page 26: Examples of Functions, Stored Procs, Queries

NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Emergency] <> 2)

SET @y2 = (SELECT SUM([Type_AA_Emergency] * [Type_AA_Emergency]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Emergency] <> 2) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTable

Page 27: Examples of Functions, Stored Procs, Queries

SET myEmergency = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET myEmergency = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- 1 DAY PLANNED KPI --*****************************************SET @sum_y = (SELECT SUM([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE

[Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2) SET @count = (SELECT COUNT([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE

[Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_1_Day] AS FLOAT)) FROM [STDB].[dbo].

[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS

Page 28: Examples of Functions, Stored Procs, Queries

NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2)

SET @y2 = (SELECT SUM([Type_1_Day] * [Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] <> 2) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTable

Page 29: Examples of Functions, Stored Procs, Queries

SET my1DayPlan = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET my1DayPlan = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

--*****************************************-- 1 DAY UNPLANNED KPI --*****************************************SET @sum_y = (SELECT SUM([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE

[Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] = 2) SET @count = (SELECT COUNT([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] = 2)

SET @avg_y = (@sum_y/@count)SET @sd_y = (SELECT STDEVP([Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE

[Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] = 2)

SET @sd_x = (SELECT STDEVP([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] = 2)

SET @sum_x = (SELECT SUM([PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] = 2)

SET @avg_x = (@sum_x/@count)SET @xy = (SELECT SUM(CAST([PS_Rank] * [Type_1_Day] AS FLOAT)) FROM [STDB].[dbo].

[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] = 2)

SET @x2 = (SELECT SUM([PS_Rank] * [PS_Rank]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] = 2)

Page 30: Examples of Functions, Stored Procs, Queries

SET @y2 = (SELECT SUM([Type_1_Day] * [Type_1_Day]) FROM [STDB].[dbo].[vw_cm_dash_R15] WHERE [Domain] = @domain AND [Group] LIKE @Group AND ([Team] LIKE @Team OR [Team] IS NULL) AND [PS_Rank] < @rank + 1 AND [PS_Rank] > @rank - 13 AND [Type_AA_Planned] = 2) SET @r = CASE WHEN @count = @sum_y THEN 0 ELSE (((@count * @xy) - (@sum_x * @sum_y)) / ((SQRT((@count * @x2) - (@sum_x * @sum_x))) * (SQRT((@count * @y2) - (@sum_y * @sum_y))))) END

SET @m = (@r * (@sd_y / @sd_x))SET @b = (@avg_y - (@m * @avg_x))

UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 0)) + @b), 4) WHERE myRank = @rank - 0UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 1)) + @b), 4) WHERE myRank = @rank - 1UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 2)) + @b), 4) WHERE myRank = @rank - 2UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 3)) + @b), 4) WHERE myRank = @rank - 3UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 4)) + @b), 4) WHERE myRank = @rank - 4UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 5)) + @b), 4) WHERE myRank = @rank - 5UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 6)) + @b), 4) WHERE myRank = @rank - 6UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 7)) + @b), 4) WHERE myRank = @rank - 7UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 8)) + @b), 4) WHERE myRank = @rank - 8UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 9)) + @b), 4) WHERE myRank = @rank - 9UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 10)) + @b), 4) WHERE myRank = @rank - 10UPDATE @MyRegressionTable

Page 31: Examples of Functions, Stored Procs, Queries

SET my1DayEmer = ROUND(((@m * (@rank - 11)) + @b), 4) WHERE myRank = @rank - 11UPDATE @MyRegressionTableSET my1DayEmer = ROUND(((@m * (@rank - 12)) + @b), 4) WHERE myRank = @rank - 12

RETURN END

GO

--************************************************

--STEP 0--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- =======================================================-- Author: Bill Jones-- Create date: 4/21/2015-- Description: Runs all USPs for CM_Dashboard ROLLING 15-- =======================================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_0_RUN]ASBEGIN

SET NOCOUNT ON;

Page 32: Examples of Functions, Stored Procs, Queries

DECLARE @RC int

EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_1_STAGE]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_2_SH_STAGE]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_3_SCRUB]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_4_CONVERT]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_5_CONVERT_SH]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_6_NULL]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_7_NULL_SH]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_8_TABLE]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_8b_OPEN]EXECUTE @RC = [STDB].[dbo].[usp_CM_DASH_R15_9_ADD]

ENDGO

--************************************************

--STEP 1--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- ========================================================-- Author: Bill Jones-- Create date: 4/21/2015-- Description: Gets CM Dashboard RAW DATA for prior month-- ========================================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_1_STAGE]ASBEGIN

SET NOCOUNT ON;

DECLARE @date1 DATETIME, @date2 DATETIME,

Page 33: Examples of Functions, Stored Procs, Queries

@days INT, @month INT, @year INT

SELECT @month = (SELECT MONTH(DATEADD(M, -1, GETDATE()))), @days = 1, @year = (SELECT YEAR(DATEADD(M, -1, GETDATE())))

SELECT @date1 = CAST(@month AS VARCHAR) + '/' + CAST(@days AS VARCHAR) + '/' + CAST(@year AS VARCHAR)SELECT @date1 = DATEADD(S, 3600 * STDB.DBO.DLS7OR8(@date1) - 1, @date1)

SELECT @month = (SELECT MONTH(GETDATE())), @days = 1, @year = (SELECT YEAR(GETDATE()))

SELECT @date2 = CAST(@month AS VARCHAR) + '/' + CAST(@days AS VARCHAR) + '/' + CAST(@year AS VARCHAR)SELECT @date2 = DATEADD(S, 3600 * STDB.DBO.DLS7OR8(@date2), @date2)

IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_SCHEMA = 'DBO' AND TABLE_NAME = 'tbl_PRMIT402_cm_dash_STAGE_r15'))

BEGINDROP TABLE [STDB].[DBO].[tbl_PRMIT402_cm_dash_STAGE_r15]

END

DECLARE @START NUMERIC = STDB.DBO.UNIX_TIMESTAMP(@date1);DECLARE @FINISH NUMERIC = STDB.DBO.UNIX_TIMESTAMP(@date2);

DECLARE @SqlCommand NVARCHAR(MAX) = N'SELECT * INTO [STDB].[DBO].[tbl_PRMIT402_cm_dash_STAGE_r15]FROM OPENQUERY(PRMIT402, ''SELECT

Actual_Finish,Actual_Start,Application,Change_ID,Change_Title,Change_Type,CM_Process_Execution,Complete_Status,Normal_Classification,Operational_Dir_Last_Name,Operational_Dir_Last_Name2,Operational_Owner_Last_Name,Planned_Finish,Planned_Start,

Page 34: Examples of Functions, Stored Procs, Queries

Portfolio,Preapproval_Status,Requestor_Login,Status, Tier_Reporting, Unsuccessful_Reason

FROM ARADMIN.A1_CHANGE_CONTROL WHERE Planned_Start > ''''' + CONVERT(CHAR(10), @START) + ''''' AND Planned_Start < ''''' + CONVERT(CHAR(10),

@FINISH) + ''''' '');';

PRINT @SqlCommand

EXEC sp_ExecuteSQL @SqlCommand;

ENDGO

--************************************************

--STEP 2--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- ========================================================-- Author: Bill Jones-- Create date: 4/21/2015-- Description: Status History data for CM Dashboard ROLLING 15 MONTH-- ========================================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_2_SH_STAGE]ASBEGIN

SET NOCOUNT ON;

IF (EXISTS (SELECT *

Page 35: Examples of Functions, Stored Procs, Queries

FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DBO' AND TABLE_NAME = 'tbl_PRMIT402_cm_dash_sh_STAGE_r15'))

BEGINDROP TABLE [STDB].[DBO].[tbl_PRMIT402_cm_dash_sh_STAGE_r15]

END

DECLARE @SQLString1 NVARCHAR(MAX)DECLARE @SQLString2 NVARCHAR(MAX)

SET @SQLString1 = (SELECT MIN([Change ID]) AS [text()] FROM stdb.dbo.tbl_PRMIT402_cm_dash_r15 FOR XML PATH(''));SET @SQLString2 = (SELECT MAX([Change ID]) AS [text()] FROM stdb.dbo.tbl_PRMIT402_cm_dash_r15 FOR XML PATH(''));

DECLARE @SqlCommand NVARCHAR(MAX) = N'SELECT * INTO [STDB].[DBO].[tbl_PRMIT402_cm_dash_sh_STAGE_r15]FROM OPENQUERY(PRMIT402, ''SELECT CHANGE_ID, APPROVED_TIME, APPROVED_USER, CLOSED_TIME, CLOSED_USERFROM ARADMIN.SH_1_CHANGE_CONTROL WHERE CHANGE_ID >= ( ' + @SQLString1 + ' ) AND CHANGE_ID <= ( ' + @SQLString2 + ' ) '');';

PRINT @SqlCommand

EXEC sp_ExecuteSQL @SqlCommand;

ENDGO

--************************************************

--STEP 3--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- =================================================-- Author: Bill Jones-- Create date: 4/21/2015

Page 36: Examples of Functions, Stored Procs, Queries

-- Description: Removes the records we do not want -- =================================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_3_SCRUB]

ASBEGIN

SET NOCOUNT ON;

DELETE FROM [STDB].[dbo].[tbl_PRMIT402_cm_dash_STAGE_r15] WHERE ([CHANGE_TYPE] = 4) OR

([COMPLETE_STATUS] = 4) OR ([COMPLETE_STATUS] = 5) OR ([TIER_REPORTING] = 'Non-Prod')

DELETE FROM [STDB].[dbo].[tbl_PRMIT402_cm_dash_sh_STAGE_r15]WHERE [CHANGE_ID] NOT IN (SELECT [CHANGE_ID]

FROM [STDB].[dbo].[tbl_PRMIT402_cm_dash_STAGE_r15])ENDGO

--************************************************

--STEP 4--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- ==================================================================-- Author: Bill Jones-- Create date: 4/21/2015-- Description: Converts to excel time, etc. and updates field names-- ==================================================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_4_CONVERT]

Page 37: Examples of Functions, Stored Procs, Queries

ASBEGIN

SET NOCOUNT ON;

TRUNCATE TABLE [STDB].[dbo].[tbl_PRMIT402_cm_dash_r15]

INSERT INTO [STDB].[dbo].[tbl_PRMIT402_cm_dash_r15] ([Actual Finish]

,[Actual Start],[Application],[Change ID],[Change Title],[Change Type],[CM Process Execution],[Complete Status],[Normal Classification],[Operational Approver],[Operational Director],[Operational Owner],[Planned Finish],[Planned Start],[Portfolio],[Preapproval Status],[Requestor Login],[Status],[Reporting Group],[Unsuccessful Reason],[Planned Start Short])

SELECT dbo.Unix2Excel2([ACTUAL_FINISH]) AS [Actual Finish],dbo.Unix2Excel2([ACTUAL_START]) AS [Actual Start],[APPLICATION] AS [Application],[CHANGE_ID] AS [Change ID],[CHANGE_TITLE] AS [Change Title],CASE [CHANGE_TYPE]

WHEN 0 THEN 'Urgent' WHEN 1 THEN 'Standard' WHEN 2 THEN 'Normal' WHEN 3 THEN 'Emergency' WHEN 4 THEN 'No Impact' ELSE NULL END AS [Change Type]

,[CM_PROCESS_EXECUTION] AS [CM Process Execution],CASE [COMPLETE_STATUS]

WHEN 0 THEN 'Successful' WHEN 1 THEN 'With Process Issues'

Page 38: Examples of Functions, Stored Procs, Queries

WHEN 2 THEN 'With System Issues' WHEN 3 THEN 'Backed Out' WHEN 4 THEN 'Withdrawn'WHEN 5 THEN 'Obsolete' WHEN 6 THEN 'TBD' WHEN 7 THEN 'Incident' ELSE NULL END AS [Complete Status]

,[NORMAL_CLASSIFICATION] AS [Normal Classification],[OPERATIONAL_DIR_LAST_NAME] AS [Operational Approver],[OPERATIONAL_DIR_LAST_NAME2] AS [Operational Director],[OPERATIONAL_OWNER_LAST_NAME] AS [Operational Owner],dbo.Unix2Excel2([PLANNED_FINISH]) AS [Planned Finish],dbo.Unix2Excel2(PLANNED_START) AS [Planned Start],[PORTFOLIO] AS [Portfolio],[PREAPPROVAL_STATUS] AS [Preapproval Status],[REQUESTOR_LOGIN] AS [Requestor Login],CASE [STATUS]

WHEN 0 THEN 'Ready' WHEN 1 THEN 'Deferred' WHEN 2 THEN 'Pending' WHEN 3 THEN 'Approved' WHEN 4 THEN 'Closed' ELSE NULL END AS [Status]

,CASE [TIER_REPORTING] WHEN 'App Support/RTL, Web, & Care' THEN 'App Support/Retail and Care' ELSE [TIER_REPORTING] END AS [Reporting Group]

,[UNSUCCESSFUL_REASON] AS [Unsuccessful Reason],(SELECT CASE

WHEN CONVERT(VARCHAR, MONTH(DATEADD(dd,-2,CONVERT(DATETIME, dbo.Unix2Excel2([Planned_Start]))))) < 10THEN CONVERT(VARCHAR, YEAR(DATEADD(dd,-2,CONVERT(DATETIME, dbo.Unix2Excel2([Planned_Start]))))) + '_0' +

CONVERT(VARCHAR, MONTH(DATEADD(dd,-2,CONVERT(DATETIME, dbo.Unix2Excel2([Planned_Start])))))ELSE CONVERT(VARCHAR, YEAR(DATEADD(dd,-2,CONVERT(DATETIME, dbo.Unix2Excel2([Planned_Start]))))) + '_' +

CONVERT(VARCHAR, MONTH(DATEADD(dd,-2,CONVERT(DATETIME, dbo.Unix2Excel2([Planned_Start])))))END) AS Planned_Start_Short

FROM [dbo].[tbl_PRMIT402_cm_dash_STAGE_r15]

ENDGO

--************************************************

--STEP 5--************************************************

Page 39: Examples of Functions, Stored Procs, Queries

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- ==================================================================-- Author: Bill Jones-- Create date: 4/21/2015-- Description: Converts to excel time, etc. and updates field names-- ==================================================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_5_CONVERT_SH]ASBEGIN

SET NOCOUNT ON;

TRUNCATE TABLE [STDB].[dbo].[tbl_PRMIT402_cm_dash_sh_r15]

INSERT INTO [dbo].[tbl_PRMIT402_cm_dash_sh_r15]([Change ID],[Approved Time],[Closed Time],[Approved User],[Closed User])

SELECT[CHANGE_ID] AS [Change ID],dbo.Unix2Excel2([APPROVED_TIME]) AS [Approved Time],dbo.Unix2Excel2([CLOSED_TIME]) AS [Closed Time],[APPROVED_USER] AS [Approved User],[CLOSED_USER] AS [Closed User]

FROM [dbo].[tbl_PRMIT402_cm_dash_sh_STAGE_r15]

ENDGO

--************************************************

--STEP 6--************************************************

Page 40: Examples of Functions, Stored Procs, Queries

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- =================================================-- Author: Bill Jones-- Create date: 2/13/2015-- Description: Changes 0's to NULL -- =================================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_6_NULL]

ASBEGIN

SET NOCOUNT ON;

UPDATE [dbo].[tbl_PRMIT402_cm_dash_r15] SET [Actual Start] = NULL WHERE [Actual Start] = 0

UPDATE [dbo].[tbl_PRMIT402_cm_dash_r15] SET [Actual Finish] = NULL WHERE [Actual Finish] = 0

ENDGO

--************************************************

--STEP 7--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

Page 41: Examples of Functions, Stored Procs, Queries

SET QUOTED_IDENTIFIER ONGO

-- =================================================-- Author: Bill Jones-- Create date: 4/21/2015-- Description: Changes 0's to NULL -- =================================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_7_NULL_SH]

ASBEGIN

SET NOCOUNT ON;

UPDATE [dbo].[tbl_PRMIT402_cm_dash_sh_r15] SET [Approved Time] = NULL WHERE [Approved Time] = 0

UPDATE [dbo].[tbl_PRMIT402_cm_dash_sh_r15] SET [Closed Time] = NULL WHERE [Closed Time] = 0

ENDGO

--************************************************

--STEP 8--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- =============================================-- Author: Bill Jones-- Create date: 4/22/2015

Page 42: Examples of Functions, Stored Procs, Queries

-- Description: Add the month of data to the STAGE table-- =============================================CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_8_TABLE]ASBEGIN

TRUNCATE TABLE [STDB].[dbo].[tbl_cm_dash_R15_STAGE]INSERT INTO [STDB].[dbo].[tbl_cm_dash_R15_STAGE]

([Actual Finish] ,[Actual Start] ,[Application] ,[Change ID] ,[Change Title] ,[Change Type] ,[CM Process Execution] ,[Complete Status] ,[Normal Classification] ,[Operational Approver] ,[Operational Director] ,[Operational Owner] ,[Planned Finish] ,[Planned Start] ,[Portfolio] ,[Preapproval Status] ,[Requestor Login] ,[Status] ,[Reporting Group] ,[Unsuccessful Reason] ,[Approved Time] ,[Closed Time] ,[Approved User] ,[Closed User] ,[Domain] ,[Org] ,[Group] ,[Team] ,[Successful] ,[Successful Value] ,[Not Successful Value] ,[Withdrawn Value] ,[Type_12_Hr] ,[Type_1_Day] ,[Type_2_Day] ,[Type_Not_Early] ,[Type_Not_Late] ,[Type_AA_Planned] ,[Type_AA_Urgent]

Page 43: Examples of Functions, Stored Procs, Queries

,[Type_AA_Emergency] ,[Planned Start Short])

SELECT dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish], dbo.tbl_PRMIT402_cm_dash_r15.[Actual Start], dbo.tbl_PRMIT402_cm_dash_r15.Application, dbo.tbl_PRMIT402_cm_dash_r15.[Change ID], dbo.tbl_PRMIT402_cm_dash_r15.[Change Title], dbo.tbl_PRMIT402_cm_dash_r15.[Change Type], dbo.tbl_PRMIT402_cm_dash_r15.[CM Process Execution], dbo.tbl_PRMIT402_cm_dash_r15.[Complete Status], dbo.tbl_PRMIT402_cm_dash_r15.[Normal Classification], dbo.tbl_PRMIT402_cm_dash_r15.[Operational Approver], dbo.tbl_PRMIT402_cm_dash_r15.[Operational Director], dbo.tbl_PRMIT402_cm_dash_r15.[Operational Owner], dbo.tbl_PRMIT402_cm_dash_r15.[Planned Finish], dbo.tbl_PRMIT402_cm_dash_r15.[Planned Start], dbo.tbl_PRMIT402_cm_dash_r15.Portfolio, dbo.tbl_PRMIT402_cm_dash_r15.[Preapproval Status], dbo.tbl_PRMIT402_cm_dash_r15.[Requestor Login], dbo.tbl_PRMIT402_cm_dash_r15.Status, dbo.tbl_PRMIT402_cm_dash_r15.[Reporting Group], dbo.tbl_PRMIT402_cm_dash_r15.[Unsuccessful Reason], dbo.tbl_PRMIT402_cm_dash_sh_r15.[Approved Time], dbo.tbl_PRMIT402_cm_dash_sh_r15.[Closed Time], dbo.tbl_PRMIT402_cm_dash_sh_r15.[Approved User], dbo.tbl_PRMIT402_cm_dash_sh_r15.[Closed User], dbo.tbl_reporting_group.Domain, dbo.tbl_reporting_group.Org, dbo.tbl_reporting_group.[Group], dbo.tbl_reporting_group.Team, dbo.tbl_complete_status.Successful, dbo.tbl_complete_status.[Successful Value], dbo.tbl_complete_status.[Not Successful Value], dbo.tbl_complete_status.[Withdrawn Value], iif(ISNULL(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish], 1) = 1, iif(GetDate() > dateadd(day, - 2,

dbo.tbl_PRMIT402_cm_dash_r15.[Planned Finish] + 0.5), 0, 1), iif(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish] + 0.5 > [Closed Time], 1, 0)) AS Type_12_Hr,

iif(ISNULL(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish], 1) = 1, iif(GetDate() > dateadd(day, - 2, dbo.tbl_PRMIT402_cm_dash_r15.[Planned Finish] + 1), 0, 1), iif(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish] + 1 > [Closed Time], 1, 0)) AS Type_1_Day,

iif(ISNULL(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish], 2) = 2, iif(GetDate() > dateadd(day, - 2, dbo.tbl_PRMIT402_cm_dash_r15.[Planned Finish] + 2), 0, 1), iif(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish] + 2 > [Closed Time], 1, 0)) AS Type_2_Day,

iif((ISNULL(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Start], 1) = 1) OR (dbo.tbl_PRMIT402_cm_dash_r15.[Actual Start] >= dbo.tbl_PRMIT402_cm_dash_r15.[Planned Start]), 1, 0) AS Type_Not_Early,

Page 44: Examples of Functions, Stored Procs, Queries

iif(ISNULL(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish], 1) = 1, iif(GetDate() <= dateadd(day, - 2, dbo.tbl_PRMIT402_cm_dash_r15.[Planned Finish]), 1, 0), iif(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish] <= dbo.tbl_PRMIT402_cm_dash_r15.[Planned Finish], 1, 0)) AS Type_Not_Late,

iif((dbo.tbl_PRMIT402_cm_dash_r15.[Change Type] = 'Urgent') OR (dbo.tbl_PRMIT402_cm_dash_r15.[Change Type] = 'Emergency'), 2, iif(ISNULL(dbo.tbl_PRMIT402_cm_dash_sh_r15.[Approved Time], 1) = 1, 0, iif(ISNULL(dbo.tbl_PRMIT402_cm_dash_r15.[Actual Start], 1) = 1, iif(dbo.tbl_PRMIT402_cm_dash_sh_r15.[Approved Time] > dbo.tbl_PRMIT402_cm_dash_r15.[Planned Start], 0, 1), iif(dbo.tbl_PRMIT402_cm_dash_sh_r15.[Approved Time] < dbo.tbl_PRMIT402_cm_dash_r15.[Actual Start], 1, 0)))) AS Type_AA_Planned,

iif(dbo.tbl_PRMIT402_cm_dash_r15.[Change Type] = 'Urgent', iif(CHARINDEX('DWA', dbo.tbl_PRMIT402_cm_dash_r15.[CM Process Execution]) > 0, 0, 1), 2) AS Type_AA_Urgent,

iif(dbo.tbl_PRMIT402_cm_dash_r15.[Change Type] = 'Emergency', iif(CHARINDEX('DWA', dbo.tbl_PRMIT402_cm_dash_r15.[CM Process Execution]) > 0, 0, 1), 2) AS Type_AA_Emergency,

dbo.tbl_PRMIT402_cm_dash_r15.[Planned Start Short]FROM STDB.dbo.tbl_PRMIT402_cm_dash_r15 LEFT OUTER JOIN

STDB.dbo.tbl_complete_status ON dbo.tbl_PRMIT402_cm_dash_r15.[Complete Status] = dbo.tbl_complete_status.[Complete Status] LEFT OUTER JOIN

STDB.dbo.tbl_reporting_group ON dbo.tbl_PRMIT402_cm_dash_r15.[Reporting Group] = dbo.tbl_reporting_group.[Reporting Group] LEFT OUTER JOIN

STDB.dbo.tbl_PRMIT402_cm_dash_sh_r15 ON dbo.tbl_PRMIT402_cm_dash_r15.[Change ID] = dbo.tbl_PRMIT402_cm_dash_sh_r15.[Change ID]

WHERE dbo.tbl_PRMIT402_cm_dash_r15.[Actual Start] > 0 AND dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish] > 0 AND dbo.tbl_PRMIT402_cm_dash_sh_r15.[Closed Time] > 0

END

GO

--************************************************

--STEP 8b--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- =============================================

Page 45: Examples of Functions, Stored Procs, Queries

-- Author: Bill Jones-- Create date: 5/5/2015-- Description: Adds the count of open RFCs to the open RFC table-- =============================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_8b_OPEN]ASBEGIN

SET NOCOUNT ON;

DECLARE @PSS_1 VARCHAR(7), @PSS_2 VARCHAR(7), @PSS_0 VARCHAR(7),

@MONTH INT,@YEAR INT

SET @MONTH = (SELECT MONTH(DATEADD(M, -1, GETDATE())))SET @YEAR = (SELECT YEAR(DATEADD(M, -1, GETDATE())))

IF @MONTH > 9BEGIN

SET @PSS_0 = CAST(@YEAR AS VARCHAR(4)) + '_' + CAST(@MONTH AS VARCHAR(2)) PRINT @PSS_0

ENDELSE

BEGINSET @PSS_0 = CAST(@YEAR AS VARCHAR(4)) + '_0' + CAST(@MONTH AS VARCHAR(1)) PRINT @PSS_0

END

SET @PSS_1 = (SELECT MAX([Planned Start Short]) AS 'Planned Start Short'FROM [STDB].[dbo].[tbl_PRMIT402_cm_dash_r15])

SET @PSS_2 = (SELECT MAX([Planned Start Short]) AS 'Planned Start Short'FROM [STDB].[dbo].[tbl_cm_dash_R15_OpenRFCs])

IF @PSS_0 = @PSS_2 AND @PSS_1 = @PSS_2BEGIN

DELETE FROM [STDB].[dbo].[tbl_cm_dash_R15_OpenRFCs] WHERE [Planned Start Short] = @PSS_0END

ELSEBEGIN

PRINT 'NO MATCH, RUN ADD OPENRFC CODE'END

INSERT INTO [STDB].[dbo].[tbl_cm_dash_R15_OpenRFCs]

Page 46: Examples of Functions, Stored Procs, Queries

([Open_RFCs],[Planned Start Short],[Domain],[Org],[Group],[Team])

SELECT COUNT(*) AS Open_RFCs, MAX([Planned Start Short]) AS 'Planned Start Short', [Domain], [Org], [Group], [Team]FROM STDB.dbo.tbl_PRMIT402_cm_dash_r15

LEFT OUTER JOIN STDB.dbo.tbl_PRMIT402_cm_dash_sh_r15 ON dbo.tbl_PRMIT402_cm_dash_r15.[Change ID] = dbo.tbl_PRMIT402_cm_dash_sh_r15.[Change ID]

LEFT OUTER JOIN STDB.dbo.tbl_reporting_group ON dbo.tbl_PRMIT402_cm_dash_r15.[Reporting Group] = dbo.tbl_reporting_group.[Reporting Group]

WHERE (--dbo.tbl_PRMIT402_cm_dash_r15.[Actual Start] = 0 dbo.tbl_PRMIT402_cm_dash_r15.[Actual Start] IS NULL --OR dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish] = 0 OR dbo.tbl_PRMIT402_cm_dash_r15.[Actual Finish] IS NULL --OR dbo.tbl_PRMIT402_cm_dash_sh_r15.[Closed Time] = 0 OR dbo.tbl_PRMIT402_cm_dash_sh_r15.[Closed Time] IS NULL)AND ([Domain]='EIT Domain' OR [Domain]='Non-EIT Domain')

GROUP BY [Domain], [Org], [Group], [Team]ENDGO

--************************************************

--STEP 9--************************************************

USE [STDB]GO

SET ANSI_NULLS ONGO

SET QUOTED_IDENTIFIER ONGO

-- =============================================-- Author: Bill Jones-- Create date: 4/22/2015-- Description: If the values pass test of no dupe then add -- =============================================

CREATE PROCEDURE [dbo].[usp_CM_DASH_R15_9_ADD]

Page 47: Examples of Functions, Stored Procs, Queries

ASBEGIN

SET NOCOUNT ON;

DECLARE @PSS_1 VARCHAR(7), @PSS_2 VARCHAR(7), @PSS_0 VARCHAR(7),

@MONTH INT,@YEAR INT

SET @MONTH = (SELECT MONTH(DATEADD(M, -1, GETDATE())))SET @YEAR = (SELECT YEAR(DATEADD(M, -1, GETDATE())))

IF @MONTH > 9BEGIN

SET @PSS_0 = CAST(@YEAR AS VARCHAR(4)) + '_' + CAST(@MONTH AS VARCHAR(2)) PRINT @PSS_0

ENDELSE

BEGINSET @PSS_0 = CAST(@YEAR AS VARCHAR(4)) + '_0' + CAST(@MONTH AS VARCHAR(1)) PRINT @PSS_0

END

SET @PSS_1 = (SELECT MAX([Planned Start Short]) AS 'Planned Start Short'FROM [STDB].[dbo].[tbl_cm_dash_R15_STAGE])

SET @PSS_2 = (SELECT MAX([Planned Start Short]) AS 'Planned Start Short'FROM [STDB].[dbo].[tbl_cm_dash_R15])

--if last month is already in both tables then delete the records and pull in the new dataIF @PSS_0 = @PSS_2 AND @PSS_1 = @PSS_2

BEGINDELETE FROM [STDB].[dbo].[tbl_cm_dash_R15] WHERE [Planned Start Short] = @PSS_2

ENDELSE

BEGINPRINT 'No Records to delete, proceed with insert.'

END

INSERT INTO [STDB].[dbo].[tbl_cm_dash_R15]([Actual Finish],[Actual Start],[Application],[Change ID],[Change Title]

Page 48: Examples of Functions, Stored Procs, Queries

,[Change Type],[CM Process Execution],[Complete Status],[Normal Classification],[Operational Approver],[Operational Director],[Operational Owner],[Planned Finish],[Planned Start],[Portfolio],[Preapproval Status],[Requestor Login],[Status],[Reporting Group],[Unsuccessful Reason],[Approved Time],[Closed Time],[Approved User],[Closed User],[Domain],[Org],[Group],[Team],[Successful],[Successful Value],[Not Successful Value],[Withdrawn Value],[Type_12_Hr],[Type_1_Day],[Type_2_Day],[Type_Not_Early],[Type_Not_Late],[Type_AA_Planned],[Type_AA_Urgent],[Type_AA_Emergency],[Planned Start Short])

SELECT[Actual Finish],[Actual Start],[Application],[Change ID],[Change Title],[Change Type],[CM Process Execution],[Complete Status],[Normal Classification]

Page 49: Examples of Functions, Stored Procs, Queries

,[Operational Approver],[Operational Director],[Operational Owner],[Planned Finish],[Planned Start],[Portfolio],[Preapproval Status],[Requestor Login],[Status],[Reporting Group],[Unsuccessful Reason],[Approved Time],[Closed Time],[Approved User],[Closed User],[Domain],[Org],[Group],[Team],[Successful],[Successful Value],[Not Successful Value],[Withdrawn Value],[Type_12_Hr],[Type_1_Day],[Type_2_Day],[Type_Not_Early],[Type_Not_Late],[Type_AA_Planned],[Type_AA_Urgent],[Type_AA_Emergency],[Planned Start Short]

FROM [STDB].[dbo].[tbl_cm_dash_R15_STAGE]

ENDGO