LogoSupport Hub

Newcor Peak Employees Report

This report provides specialized peak employee analysis for Newcor, focusing on their specific business requirements and organizational structure.

Overview

The Newcor Peak Employees Report analyzes peak employment periods specifically for Newcor, providing detailed workforce insights tailored to their operational needs and business model.

Parameters

  • Date Range - Uses {mindate} and {maxdate} parameters for flexible date selection
  • Newcor-Specific Filtering - Customized for Newcor's organizational structure
  • Peak Calculation - Identifies highest employee count periods
  • Employee Details - Comprehensive employee information at peak periods

Report Output

The report provides the following information:

  • Peak Date Information - Date when maximum employee count occurred
  • Employee List - Complete list of employees at peak capacity
  • Workgroup Breakdown - Employee distribution by workgroup/division
  • Summary Statistics - Total employee counts and organizational metrics

Technical Implementation

The script uses:

  • DAILYSTATE table for historical employee count tracking
  • EMPLOYEES table for employee and workgroup information
  • WORKGROUP2 table for workgroup names and hierarchy
  • Complex date parsing to identify peak employment periods
  • Temporary tables for data processing and aggregation
  • Newcor-specific logic for customized analysis

T-SQL

newcor_peak_emps.sql
SET NOCOUNT ON
SET ANSI_WARNINGS OFF

DECLARE @EMPLOYEES TABLE (FK INT, ACTIVEWORKGROUP INT)
  
DECLARE @EELIST TABLE(EENAME VARCHAR(250),IDNUM VARCHAR(20),WGROUP VARCHAR(300))

DECLARE @WGINFO TABLE(WGNUM INT,WGNAME VARCHAR(300),EECOUNT INT, ESSCOUNT INT)  


DECLARE
  @ITERATION SMALLINT,
  @COUNTER SMALLINT,
  @LENGTH SMALLINT,
  @CURRENTCHARACTER VARCHAR(1),
  @CURRENTVALUE VARCHAR(16),
  @INDEX SMALLINT,
  @STARTVALUE SMALLINT,
  @ENDVALUE SMALLINT,
  @START DATETIME,
  @END DATETIME,
  @ITEMTYPE SMALLINT,
  @STARTDATE DATETIME,
  @ENDDATE DATETIME,
  @EECOUNT INT,
  @HIGHDATE INT

SET @STARTDATE = '4/1/2023'
set @enddate = '4/30/2023'

/*
SET @STARTDATE ={mindate}
set @enddate = {maxdate}
*/
SET @ITERATION=1


WHILE (@ITERATION<=1)
BEGIN
IF @ITERATION=1
--*****************************Sets @Start and @END to the top (newest) EventDate inside of the search range. for example search range starts 4/1 and today is 4/13 is will come back with 4/13
BEGIN
	SET @ITEMTYPE=0
		SELECT TOP 1 
			@START = EVENTDATE
         FROM DAILYSTATE 
         WHERE (EVENTDATE >= @STARTDATE AND EVENTDATE <= @ENDDATE) AND ITEMTYPE = @ITEMTYPE
         GROUP BY EVENTDATE, INSTANCES
         ORDER BY INSTANCES DESC, EVENTDATE DESC
     SET @END = @START
END
--**********************************************************************************************************************************************************************************************

  WHILE (@START <= @END)
      BEGIN
        SET @COUNTER = 0
        SELECT 
          @LENGTH = DATALENGTH(REFDATA) --returns the number of bytes used to represent an expression (Appear to be the number of characters. RefDATA appears to be a list of filekeys for the day.)
          FROM DAILYSTATE 
          WHERE EVENTDATE = @START AND ITEMTYPE = @ITEMTYPE
          SET @CURRENTVALUE = ''

        WHILE (@COUNTER <= @LENGTH)
          BEGIN
            SELECT @CURRENTCHARACTER = SUBSTRING(REFDATA, @COUNTER, 1) 
              FROM DAILYSTATE 
              WHERE EVENTDATE = @START AND ITEMTYPE = @ITEMTYPE
    
            IF @CURRENTCHARACTER != ',' SET @CURRENTVALUE = @CURRENTVALUE + @CURRENTCHARACTER

IF @CURRENTCHARACTER = ',' OR @COUNTER = @LENGTH
              BEGIN
                SET @INDEX = CHARINDEX(':', @CURRENTVALUE)
               
                IF @INDEX = 0 OR @INDEX IS NULL 
                  BEGIN
                    IF @ITEMTYPE = 0
                      INSERT INTO @EMPLOYEES VALUES (CONVERT(SMALLINT,@CURRENTVALUE), 0)
                    
               
                  END
        
 IF @INDEX > 0
                  BEGIN
                    SET @STARTVALUE = CONVERT(SMALLINT,LEFT(@CURRENTVALUE,@INDEX-1))
                    SET @ENDVALUE = CONVERT(SMALLINT,RIGHT(@CURRENTVALUE,LEN(@CURRENTVALUE)-@INDEX))
                                       
                    WHILE (@STARTVALUE <= @ENDVALUE)
                      BEGIN
                        IF @ITEMTYPE = 0
                          INSERT INTO @EMPLOYEES VALUES (@STARTVALUE, 0)
                       
             
                        SET @STARTVALUE = @STARTVALUE + 1
                      END
                  END
                
                IF @CURRENTCHARACTER = ',' SET @CURRENTVALUE = ''
              END
            SET @COUNTER = @COUNTER + 1
          END
        SET @START = DATEADD(DAY,1,@START)
      END      
    SET @ITERATION = @ITERATION + 1
  END
SET @START = DATEADD(DAY,-1,@START)
  
UPDATE @EMPLOYEES SET ACTIVEWORKGROUP=(SELECT WG2 FROM EMPLOYEES WHERE FILEKEY=FK AND WGEFFDATE<=@START)
UPDATE @EMPLOYEES SET ACTIVEWORKGROUP=(SELECT TOP 1 WG2 FROM EMPHOMEWGHIST WHERE FILEKEY=FK AND EFFDATE<=@START ORDER BY EFFDATE DESC)WHERE ACTIVEWORKGROUP IS NULL
UPDATE @EMPLOYEES SET ACTIVEWORKGROUP= (SELECT WG2 FROM EMPLOYEES WHERE FILEKEY=FK)WHERE ACTIVEWORKGROUP IS NULL


INSERT INTO @EELIST SELECT 'Active Employee List ',DATENAME(MONTH,@START)+' '+DATENAME(YEAR,@START),NULL
INSERT INTO @EELIST SELECT NULL,NULL,NULL
INSERT INTO @EELIST SELECT 'High Water Mark Date',CONVERT(VARCHAR(10),@START,101),NULL
INSERT INTO @EELIST SELECT NULL,NULL,NULL
INSERT INTO @EELIST SELECT DISTINCT E.LASTNAME+', '+E.FIRSTNAME,E.IDNUM,WG2.NAME FROM EMPLOYEES E,
WORKGROUP2 WG2,@EMPLOYEES A WHERE A.FK=E.FILEKEY AND A.ACTIVEWORKGROUP=WG2.WGNUM ORDER BY 3,1

INSERT INTO @WGINFO SELECT NULL,'Active Employee Count Per Division '+DATENAME(MONTH,@START)+' '+DATENAME(YEAR,@START),NULL,NULL
INSERT INTO @WGINFO SELECT NULL,NULL,NULL,NULL
INSERT INTO @WGINFO SELECT NULL,'High Water Mark Date'+' '+CONVERT(VARCHAR(10),@START,101),NULL,NULL
INSERT INTO @WGINFO SELECT NULL,NULL,NULL,NULL
INSERT INTO @WGINFO SELECT DISTINCT WGNUM,NAME,NULL,NULL FROM WORKGROUP2 ORDER BY 2

UPDATE @WGINFO SET EECOUNT=(SELECT COUNT(*) FROM @EMPLOYEES WHERE ACTIVEWORKGROUP=WGNUM)WHERE WGNUM IS NOT NULL

UPDATE @WGINFO SET ESSCOUNT = (SELECT Count(*) from @EMPLOYEES where ACTIVEWORKGROUP=WGNUM and FK IN (Select DISTINCT FILEKEY FROM EMPLOYEEACTIVITY WHERE FILEKEY IN (SELECT fk FROM @EMPLOYEES))) WHERE WGNUM IS NOT NULL

INSERT INTO @WGINFO SELECT NULL,NULL,NULL,NULL
INSERT INTO @WGINFO SELECT NULL, 'TOTAL',(SELECT SUM(EECOUNT) FROM @WGINFO),(Select SUM(ESSCOUNT) from @WGINFO)
INSERT INTO @EELIST SELECT NULL,NULL,NULL
INSERT INTO @EELIST SELECT NULL, 'TOTAL',(SELECT COUNT(FK) FROM @EMPLOYEES)

--SELECT * FROM @EELIST

SELECT * FROM @WGINFO

--Select * from @EMPLOYEES

Common Use Cases

  • Newcor Operations - Support Newcor-specific workforce planning
  • Capacity Analysis - Understand Newcor's peak staffing requirements
  • Resource Planning - Plan for Newcor's maximum workforce needs
  • Business Intelligence - Provide Newcor with detailed workforce analytics

Content Inventory

  • Doc File: content/docs/reports/system_information/newcor_peak_emps.mdx
  • SQL Script: SQL/reports/system_information/newcor_peak_emps.sql