SlideShare a Scribd company logo
-- =============================================
-- Author: Simon Hoyle
-- Create date: 23/4/2002
-- Description: Part 3 of personnel search procedure
-- =============================================
ALTER PROCEDURE [dbo].[usp_FindP_ShowPersonnel]
@lastname as nvarchar(30),
@Discipline as nvarchar(50),
@Discipline2 as nvarchar(50),
@Discipline3 as nvarchar(50),
@Discipline4 as nvarchar(50),
@PrimaryRank as nvarchar(50),
@Country as nvarchar(30),
@OnshoreExperience bit,
@OffshoreExperience bit,
@HasContract as nvarchar(10),
@PersonalDetails nvarchar(100),
@PersonalDetails2 nvarchar(100),
@Notes nvarchar(100),
@ClientEnqNotes nvarchar(100),
@ValidCertsOnly as smallint,
@UserTag bit,
@AvailableFrom as nvarchar(10),
@DateAvailExcludeBlank bit,
@DateAvailMonthLimit bit
AS
DECLARE @sqlstatement as nvarchar(2000),
@TempFileIndex as nvarchar(1),
@where as nvarchar(1000),
@tempviewname as nvarchar(30),
@StatusCompareType nvarchar(2),
@LoopDone as int,
@Include as smallint,
@Status as nvarchar(20),
@YesMatch as nvarchar(500),
@NoMatch as nvarchar(500),
@MatchString as nvarchar(600),
@DateAvailFrom as datetime, @DateAvailTo as datetime
--
-- Clear temp tables
DELETE FROM USYS_FindPersonnel_Results1 WHERE
TerminalID=HOST_ID()
DELETE FROM USYS_FindPersonnel_Results2 WHERE
TerminalID=HOST_ID()
DELETE FROM USYS_FindPersonnel_Results3 WHERE
TerminalID=HOST_ID()
--
-- Standard search, into USYS_FindPersonnel_Results1
EXEC usp_FindP_StdSearch @lastname, @Discipline,
@Discipline2, @Discipline3, @Discipline4, @PrimaryRank,
@Country, @OnshoreExperience, @OffshoreExperience
SET @TempFileIndex = 1
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
--
-- User tag search ?
IF (@UserTag<>0)
BEGIN
-- If a tagged search, USYS_FindPersonnel
will have been loaded with PersonnelID's of tagged records
-- by frmFindPersonnel/ShowPersonnel.
-- Copy standard search result matched with
tagged to USYS_FindPersonnel_Results2
INSERT INTO USYS_FindPersonnel_Results2
(PersonnelID)
SELECT
USYS_FindPersonnel_Results1.PersonnelID FROM
USYS_FindPersonnel_Results1
INNER JOIN USYS_FindPersonnel ON
USYS_FindPersonnel_Results1.PersonnelID =
USYS_FindPersonnel.PersonnelID
WHERE USYS_FindPersonnel.TerminalID =
host_id()
-- Clear USYS_FindPersonnel_Results1
DELETE FROM USYS_FindPersonnel_Results1 WHERE
TerminalID=HOST_ID()
-- Copy back from
USYS_FindPersonnel_Results2 to USYS_FindPersonnel_Results1
INSERT INTO USYS_FindPersonnel_Results1
(PersonnelID)
SELECT PersonnelID FROM
USYS_FindPersonnel_Results2
WHERE USYS_FindPersonnel_Results2.TerminalID
= host_id()
-- Clear USYS_FindPersonnel_Results2
DELETE FROM USYS_FindPersonnel_Results2 WHERE
TerminalID=HOST_ID()
END
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
--
-- AvailableDate?
IF (Len(@AvailableFrom)> 0)
-- YES,
BEGIN
IF (ISDATE(@AvailableFrom) = 1)
BEGIN
SET @DateAvailFrom =
Cast(@AvailableFrom as datetime)
--
IF (@DateAvailMonthLimit = 1)
SET @DateAvailTo = DATEADD(m, 1,
@DateAvailFrom)
ELSE
SET @DateAvailTo = DATEADD(m, 12,
@DateAvailFrom)
--
IF (@DateAvailExcludeBlank = 0)
INSERT INTO
USYS_FindPersonnel_Results2 (PersonnelID)
SELECT
USYS_FindPersonnel_Results1.PersonnelID FROM
USYS_FindPersonnel_Results1
INNER JOIN tblPersonnel ON
USYS_FindPersonnel_Results1.PersonnelID =
tblPersonnel.PersonnelID
WHERE
USYS_FindPersonnel_Results1.TerminalID = host_id()
AND (
(tblPersonnel.AvailableFrom BETWEEN @DateAvailFrom AND
@DateAvailTo)
OR
(tblPersonnel.AvailableFrom IS NULL)
)
ELSE
INSERT INTO
USYS_FindPersonnel_Results2 (PersonnelID)
SELECT
USYS_FindPersonnel_Results1.PersonnelID FROM
USYS_FindPersonnel_Results1
INNER JOIN tblPersonnel ON
USYS_FindPersonnel_Results1.PersonnelID =
tblPersonnel.PersonnelID
WHERE
USYS_FindPersonnel_Results1.TerminalID = host_id()
AND
(tblPersonnel.AvailableFrom BETWEEN @DateAvailFrom AND
@DateAvailTo)
/*INSERT INTO
USYS_FindPersonnel_Results2 (PersonnelID)
SELECT
USYS_FindPersonnel_Results1.PersonnelID FROM
USYS_FindPersonnel_Results1
INNER JOIN tblPersonnel ON
USYS_FindPersonnel_Results1.PersonnelID =
tblPersonnel.PersonnelID
WHERE
USYS_FindPersonnel_Results1.TerminalID = host_id()
AND (
(tblPersonnel.AvailableFrom <= Cast(@AvailableFrom as
datetime))
OR
(tblPersonnel.AvailableFrom IS NULL)
)*/
-- Clear USYS_FindPersonnel_Results1
DELETE FROM USYS_FindPersonnel_Results1
WHERE TerminalID=HOST_ID()
-- Copy back from
USYS_FindPersonnel_Results2 to USYS_FindPersonnel_Results1
INSERT INTO USYS_FindPersonnel_Results1
(PersonnelID)
SELECT PersonnelID FROM
USYS_FindPersonnel_Results2
WHERE
USYS_FindPersonnel_Results2.TerminalID = host_id()
-- Clear USYS_FindPersonnel_Results2
DELETE FROM USYS_FindPersonnel_Results2
WHERE TerminalID=HOST_ID()
END
END
--
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
--
-- HasContract?
IF (Len(@HasContract)> 0)
-- YES,
BEGIN
IF (ISDATE(@HasContract) = 1)
BEGIN
INSERT INTO USYS_FindPersonnel_Results2
(PersonnelID)
SELECT UFPR.PersonnelID
FROM USYS_FindPersonnel_Results1 AS
UFPR INNER JOIN
tblContract AS C ON UFPR.PersonnelID =
C.SubcontractorID
WHERE (UFPR.TerminalID = HOST_ID()) AND
(C.StartDate >= CAST(@HasContract
AS datetime))
-- Clear USYS_FindPersonnel_Results1
DELETE FROM USYS_FindPersonnel_Results1
WHERE TerminalID=HOST_ID()
-- Copy back from
USYS_FindPersonnel_Results2 to USYS_FindPersonnel_Results1
INSERT INTO USYS_FindPersonnel_Results1
(PersonnelID)
SELECT PersonnelID FROM
USYS_FindPersonnel_Results2
WHERE
USYS_FindPersonnel_Results2.TerminalID = host_id()
-- Clear USYS_FindPersonnel_Results2
DELETE FROM USYS_FindPersonnel_Results2
WHERE TerminalID=HOST_ID()
END
END
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
--
-- Text search in tblPersonnnel ?
IF ((Len(@PersonalDetails)>1) OR
(Len(@PersonalDetails2)>1) OR (Len(@Notes)>1))
BEGIN
EXEC usp_FindP_TextSearch @PersonalDetails,
@PersonalDetails2, @Notes
END
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
--
-- Text search in tblClientEnqPersNotes?
IF (Len(@ClientEnqNotes)>1)
BEGIN
EXEC usp_FindP_TextSearch_CEPN
@ClientEnqNotes
END
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
--
-- Are there any Certification requirements?
IF EXISTS (SELECT TerminalID FROM USYS_CertSelect
WHERE (TerminalID = HOST_ID()) AND (USYS_CertSelect.Include
<> 0))
-- YES, use USYS_CertSelect to filter into
USYS_FindPersonnel_Results2
BEGIN
IF (@ValidCertsOnly<>0)
SET @tempviewname =
'viewFindPers_CertValidUnique'
ELSE
SET @tempviewname =
'viewFindPers_CertsUnique'
--
EXEC usp_FindP_MakeCertsWhere @tempviewname,
@TempFileIndex, @where OUTPUT
SET @sqlstatement = 'INSERT INTO
USYS_FindPersonnel_Results' + Cast((@TempFileIndex + 1) as
varchar) + ' (PersonnelID) SELECT ' + @tempviewname +
'.PersonnelID FROM USYS_FindPersonnel_Results' +
Cast(@TempFileIndex as varchar) + ' LEFT OUTER JOIN ' +
@tempviewname + ' ON USYS_FindPersonnel_Results' +
Cast(@TempFileIndex as varchar)+ '.PersonnelID = ' +
@tempviewname + '.PersonnelID WHERE ' + @where
EXEC sp_executesql @sqlstatement
--INSERT USYS_MSG VALUES (Cast(@sqlstatement
as nvarchar(1000)))
--INSERT USYS_MSG VALUES (Cast( 'Called
sp_executesql (Certs)- Error status=' + Cast(@@Error as
char) as nvarchar(1000)))
SET @TempFileIndex = @TempFileIndex + 1
END
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
--
-- Are there any Status requirements?
IF EXISTS (SELECT TerminalID FROM USYS_StatusSelect
WHERE (TerminalID = HOST_ID()) AND (Include <> 0))
-- YES, use USYS_StatusSelect to filter
USYS_FindPersonnel_Results2 to USYS_FindPersonnel_Results3
BEGIN
-- Create temp tables for include and exclude
enties
SELECT Status INTO #includestatus
FROM dbo.USYS_StatusSelect
WHERE (Include > 0) AND (TerminalID = HOST_ID())
--
SELECT Status INTO #excludestatus
FROM dbo.USYS_StatusSelect
WHERE (Include < 0) AND (TerminalID = HOST_ID())
--
-- Build action query
SET @sqlstatement = ''
--
IF Exists (SELECT * FROM #includestatus)
SET @sqlstatement = '(P.Status IN (SELECT Status
FROM #includestatus))'
--
IF Exists (SELECT * FROM #excludestatus)
BEGIN
IF (Len(@sqlstatement) > 0) SET
@sqlstatement = @sqlstatement + ' AND '
--
SET @sqlstatement = @sqlstatement +
'(P.Status NOT IN (SELECT Status FROM #excludestatus))'
END
--
SET @sqlstatement = 'INSERT INTO
USYS_FindPersonnel_Results' + Cast((@TempFileIndex + 1) as
varchar) +
' (PersonnelID) SELECT P.PersonnelID FROM
dbo.tblPersonnel AS P ' +
'RIGHT OUTER JOIN
dbo.USYS_FindPersonnel_Results' + Cast(@TempFileIndex as
varchar) + ' AS U ' +
'ON P.PersonnelID = U.PersonnelID ' +
'WHERE ((U.TerminalID = HOST_ID()) AND ' +
@sqlstatement + ')'
--
--INSERT USYS_MSG VALUES (@sqlstatement)
--
EXEC sp_executesql @sqlstatement
SET @TempFileIndex = @TempFileIndex + 1
END
--
-- Ensure result in dbo.USYS_FindPersonnel_Results5
IF (@TempFileIndex < 3)
BEGIN
-- Move result
SET @sqlstatement = 'INSERT INTO
USYS_FindPersonnel_Results3 (PersonnelID) SELECT
PersonnelID FROM dbo.USYS_FindPersonnel_Results' +
Cast(@TempFileIndex as varchar) + ' WHERE TerminalID =
HOST_ID()'
EXEC sp_executesql @sqlstatement
--select @sqlstatement
END
--
-- Return recordset size
SELECT COUNT(PersonnelID) AS CountOfRecordset FROM
USYS_FindPersonnel_Results3 WHERE TerminalID = HOST_ID()

More Related Content

PPTX
Python data structures
PPTX
PDF
PLOTCON NYC: Behind Every Great Plot There's a Great Deal of Wrangling
PDF
Association Rule Mining with R
PDF
جلسه سوم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
PDF
Visualization of Supervised Learning with {arules} + {arulesViz}
PDF
Quick reference for Grafana
PDF
Read data from Excel spreadsheets into R
Python data structures
PLOTCON NYC: Behind Every Great Plot There's a Great Deal of Wrangling
Association Rule Mining with R
جلسه سوم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
Visualization of Supervised Learning with {arules} + {arulesViz}
Quick reference for Grafana
Read data from Excel spreadsheets into R

What's hot (16)

PDF
Tracking Data Updates in Real-time with Change Data Capture
PDF
Comparative Genomics with GMOD and BioPerl
PDF
Intro to OTP in Elixir
PDF
Simple Ways To Be A Better Programmer (OSCON 2007)
PPT
SQL querys in detail || Sql query slides
PDF
Python fundamentals - basic | WeiYuan
PPT
SQL || overview and detailed information about Sql
PDF
Python testing-frameworks overview
TXT
Quick reference for cql
PDF
Chapter 2: R tutorial Handbook for Data Science and Machine Learning Practiti...
PDF
Writing Readable Code with Pipes
PDF
PHP tips and tricks
TXT
Quick reference for hql
PDF
Database API, your new friend
PPTX
Lecture5 my sql statements by okello erick
PDF
Regression and Classification with R
Tracking Data Updates in Real-time with Change Data Capture
Comparative Genomics with GMOD and BioPerl
Intro to OTP in Elixir
Simple Ways To Be A Better Programmer (OSCON 2007)
SQL querys in detail || Sql query slides
Python fundamentals - basic | WeiYuan
SQL || overview and detailed information about Sql
Python testing-frameworks overview
Quick reference for cql
Chapter 2: R tutorial Handbook for Data Science and Machine Learning Practiti...
Writing Readable Code with Pipes
PHP tips and tricks
Quick reference for hql
Database API, your new friend
Lecture5 my sql statements by okello erick
Regression and Classification with R
Ad

Viewers also liked (15)

PPT
Diaporama 10ª Assembleia da Organização Regional de Viseu do PCP - 24 de Maio...
PPTX
Tema 1 tic resumen
PDF
NHC Central Caribbean Satellite Tropical Disturbance Rainfall Estimates
PPTX
W ek a
PPTX
Grammar Review pt 2
PDF
Miten etsin töitä piilosta 20150526
PDF
Language Revision Sheet 2
PPT
Persuasive Writing 1
PDF
User Centric Analytics - Omexpo
PDF
Feature driven development
DOCX
Amarjit Resume
PPTX
Problem Solution Essay
PDF
Untitled Presentation
PDF
Audit Interne -Qualité
Diaporama 10ª Assembleia da Organização Regional de Viseu do PCP - 24 de Maio...
Tema 1 tic resumen
NHC Central Caribbean Satellite Tropical Disturbance Rainfall Estimates
W ek a
Grammar Review pt 2
Miten etsin töitä piilosta 20150526
Language Revision Sheet 2
Persuasive Writing 1
User Centric Analytics - Omexpo
Feature driven development
Amarjit Resume
Problem Solution Essay
Untitled Presentation
Audit Interne -Qualité
Ad

Similar to Seistech SQL code (20)

PDF
Codigos
PDF
Problem 1 Show the comparison of runtime of linear search and binar.pdf
PDF
Cassandra v3.0 at Rakuten meet-up on 12/2/2015
PPTX
Introduction to database
PDF
Internationalizing CakePHP Applications
KEY
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
PDF
Postgres can do THAT?
PDF
Sql subquery
PPT
FMDB - SLC-Cocoaheads
PPTX
Sql analytic queries tips
PPTX
OpenWorld 2018 - Common Application Developer Disasters
PDF
Credit Risk Assessment using Machine Learning Techniques with WEKA
PDF
Perforce Object and Record Model
PDF
Oracle Database 12c Application Development
DOCX
RELATIONAL DATABASES & Database designCIS276EmployeeNumFir.docx
PPTX
ETL for Pros: Getting Data Into MongoDB
PDF
Notes for SQLite3 Usage
PDF
Pdxpugday2010 pg90
PDF
PostgreSQL (2) by Aswin
PPT
Tony jambu (obscure) tools of the trade for tuning oracle sq ls
Codigos
Problem 1 Show the comparison of runtime of linear search and binar.pdf
Cassandra v3.0 at Rakuten meet-up on 12/2/2015
Introduction to database
Internationalizing CakePHP Applications
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Postgres can do THAT?
Sql subquery
FMDB - SLC-Cocoaheads
Sql analytic queries tips
OpenWorld 2018 - Common Application Developer Disasters
Credit Risk Assessment using Machine Learning Techniques with WEKA
Perforce Object and Record Model
Oracle Database 12c Application Development
RELATIONAL DATABASES & Database designCIS276EmployeeNumFir.docx
ETL for Pros: Getting Data Into MongoDB
Notes for SQLite3 Usage
Pdxpugday2010 pg90
PostgreSQL (2) by Aswin
Tony jambu (obscure) tools of the trade for tuning oracle sq ls

Seistech SQL code

  • 1. -- ============================================= -- Author: Simon Hoyle -- Create date: 23/4/2002 -- Description: Part 3 of personnel search procedure -- ============================================= ALTER PROCEDURE [dbo].[usp_FindP_ShowPersonnel] @lastname as nvarchar(30), @Discipline as nvarchar(50), @Discipline2 as nvarchar(50), @Discipline3 as nvarchar(50), @Discipline4 as nvarchar(50), @PrimaryRank as nvarchar(50), @Country as nvarchar(30), @OnshoreExperience bit, @OffshoreExperience bit, @HasContract as nvarchar(10), @PersonalDetails nvarchar(100), @PersonalDetails2 nvarchar(100), @Notes nvarchar(100), @ClientEnqNotes nvarchar(100), @ValidCertsOnly as smallint, @UserTag bit, @AvailableFrom as nvarchar(10), @DateAvailExcludeBlank bit, @DateAvailMonthLimit bit AS DECLARE @sqlstatement as nvarchar(2000), @TempFileIndex as nvarchar(1), @where as nvarchar(1000), @tempviewname as nvarchar(30), @StatusCompareType nvarchar(2), @LoopDone as int, @Include as smallint, @Status as nvarchar(20), @YesMatch as nvarchar(500), @NoMatch as nvarchar(500), @MatchString as nvarchar(600), @DateAvailFrom as datetime, @DateAvailTo as datetime -- -- Clear temp tables DELETE FROM USYS_FindPersonnel_Results1 WHERE TerminalID=HOST_ID() DELETE FROM USYS_FindPersonnel_Results2 WHERE TerminalID=HOST_ID() DELETE FROM USYS_FindPersonnel_Results3 WHERE TerminalID=HOST_ID() --
  • 2. -- Standard search, into USYS_FindPersonnel_Results1 EXEC usp_FindP_StdSearch @lastname, @Discipline, @Discipline2, @Discipline3, @Discipline4, @PrimaryRank, @Country, @OnshoreExperience, @OffshoreExperience SET @TempFileIndex = 1 -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- -- User tag search ? IF (@UserTag<>0) BEGIN -- If a tagged search, USYS_FindPersonnel will have been loaded with PersonnelID's of tagged records -- by frmFindPersonnel/ShowPersonnel. -- Copy standard search result matched with tagged to USYS_FindPersonnel_Results2 INSERT INTO USYS_FindPersonnel_Results2 (PersonnelID) SELECT USYS_FindPersonnel_Results1.PersonnelID FROM USYS_FindPersonnel_Results1 INNER JOIN USYS_FindPersonnel ON USYS_FindPersonnel_Results1.PersonnelID = USYS_FindPersonnel.PersonnelID WHERE USYS_FindPersonnel.TerminalID = host_id() -- Clear USYS_FindPersonnel_Results1 DELETE FROM USYS_FindPersonnel_Results1 WHERE TerminalID=HOST_ID() -- Copy back from USYS_FindPersonnel_Results2 to USYS_FindPersonnel_Results1 INSERT INTO USYS_FindPersonnel_Results1 (PersonnelID) SELECT PersonnelID FROM USYS_FindPersonnel_Results2 WHERE USYS_FindPersonnel_Results2.TerminalID = host_id() -- Clear USYS_FindPersonnel_Results2 DELETE FROM USYS_FindPersonnel_Results2 WHERE TerminalID=HOST_ID() END -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- -- AvailableDate?
  • 3. IF (Len(@AvailableFrom)> 0) -- YES, BEGIN IF (ISDATE(@AvailableFrom) = 1) BEGIN SET @DateAvailFrom = Cast(@AvailableFrom as datetime) -- IF (@DateAvailMonthLimit = 1) SET @DateAvailTo = DATEADD(m, 1, @DateAvailFrom) ELSE SET @DateAvailTo = DATEADD(m, 12, @DateAvailFrom) -- IF (@DateAvailExcludeBlank = 0) INSERT INTO USYS_FindPersonnel_Results2 (PersonnelID) SELECT USYS_FindPersonnel_Results1.PersonnelID FROM USYS_FindPersonnel_Results1 INNER JOIN tblPersonnel ON USYS_FindPersonnel_Results1.PersonnelID = tblPersonnel.PersonnelID WHERE USYS_FindPersonnel_Results1.TerminalID = host_id() AND ( (tblPersonnel.AvailableFrom BETWEEN @DateAvailFrom AND @DateAvailTo) OR (tblPersonnel.AvailableFrom IS NULL) ) ELSE INSERT INTO USYS_FindPersonnel_Results2 (PersonnelID) SELECT USYS_FindPersonnel_Results1.PersonnelID FROM USYS_FindPersonnel_Results1 INNER JOIN tblPersonnel ON USYS_FindPersonnel_Results1.PersonnelID = tblPersonnel.PersonnelID WHERE USYS_FindPersonnel_Results1.TerminalID = host_id() AND (tblPersonnel.AvailableFrom BETWEEN @DateAvailFrom AND
  • 4. @DateAvailTo) /*INSERT INTO USYS_FindPersonnel_Results2 (PersonnelID) SELECT USYS_FindPersonnel_Results1.PersonnelID FROM USYS_FindPersonnel_Results1 INNER JOIN tblPersonnel ON USYS_FindPersonnel_Results1.PersonnelID = tblPersonnel.PersonnelID WHERE USYS_FindPersonnel_Results1.TerminalID = host_id() AND ( (tblPersonnel.AvailableFrom <= Cast(@AvailableFrom as datetime)) OR (tblPersonnel.AvailableFrom IS NULL) )*/ -- Clear USYS_FindPersonnel_Results1 DELETE FROM USYS_FindPersonnel_Results1 WHERE TerminalID=HOST_ID() -- Copy back from USYS_FindPersonnel_Results2 to USYS_FindPersonnel_Results1 INSERT INTO USYS_FindPersonnel_Results1 (PersonnelID) SELECT PersonnelID FROM USYS_FindPersonnel_Results2 WHERE USYS_FindPersonnel_Results2.TerminalID = host_id() -- Clear USYS_FindPersonnel_Results2 DELETE FROM USYS_FindPersonnel_Results2 WHERE TerminalID=HOST_ID() END END -- -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- -- HasContract? IF (Len(@HasContract)> 0) -- YES, BEGIN IF (ISDATE(@HasContract) = 1) BEGIN
  • 5. INSERT INTO USYS_FindPersonnel_Results2 (PersonnelID) SELECT UFPR.PersonnelID FROM USYS_FindPersonnel_Results1 AS UFPR INNER JOIN tblContract AS C ON UFPR.PersonnelID = C.SubcontractorID WHERE (UFPR.TerminalID = HOST_ID()) AND (C.StartDate >= CAST(@HasContract AS datetime)) -- Clear USYS_FindPersonnel_Results1 DELETE FROM USYS_FindPersonnel_Results1 WHERE TerminalID=HOST_ID() -- Copy back from USYS_FindPersonnel_Results2 to USYS_FindPersonnel_Results1 INSERT INTO USYS_FindPersonnel_Results1 (PersonnelID) SELECT PersonnelID FROM USYS_FindPersonnel_Results2 WHERE USYS_FindPersonnel_Results2.TerminalID = host_id() -- Clear USYS_FindPersonnel_Results2 DELETE FROM USYS_FindPersonnel_Results2 WHERE TerminalID=HOST_ID() END END -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- -- Text search in tblPersonnnel ? IF ((Len(@PersonalDetails)>1) OR (Len(@PersonalDetails2)>1) OR (Len(@Notes)>1)) BEGIN EXEC usp_FindP_TextSearch @PersonalDetails, @PersonalDetails2, @Notes END -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- -- Text search in tblClientEnqPersNotes? IF (Len(@ClientEnqNotes)>1) BEGIN EXEC usp_FindP_TextSearch_CEPN @ClientEnqNotes END
  • 6. -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- -- Are there any Certification requirements? IF EXISTS (SELECT TerminalID FROM USYS_CertSelect WHERE (TerminalID = HOST_ID()) AND (USYS_CertSelect.Include <> 0)) -- YES, use USYS_CertSelect to filter into USYS_FindPersonnel_Results2 BEGIN IF (@ValidCertsOnly<>0) SET @tempviewname = 'viewFindPers_CertValidUnique' ELSE SET @tempviewname = 'viewFindPers_CertsUnique' -- EXEC usp_FindP_MakeCertsWhere @tempviewname, @TempFileIndex, @where OUTPUT SET @sqlstatement = 'INSERT INTO USYS_FindPersonnel_Results' + Cast((@TempFileIndex + 1) as varchar) + ' (PersonnelID) SELECT ' + @tempviewname + '.PersonnelID FROM USYS_FindPersonnel_Results' + Cast(@TempFileIndex as varchar) + ' LEFT OUTER JOIN ' + @tempviewname + ' ON USYS_FindPersonnel_Results' + Cast(@TempFileIndex as varchar)+ '.PersonnelID = ' + @tempviewname + '.PersonnelID WHERE ' + @where EXEC sp_executesql @sqlstatement --INSERT USYS_MSG VALUES (Cast(@sqlstatement as nvarchar(1000))) --INSERT USYS_MSG VALUES (Cast( 'Called sp_executesql (Certs)- Error status=' + Cast(@@Error as char) as nvarchar(1000))) SET @TempFileIndex = @TempFileIndex + 1 END -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- -- Are there any Status requirements? IF EXISTS (SELECT TerminalID FROM USYS_StatusSelect WHERE (TerminalID = HOST_ID()) AND (Include <> 0)) -- YES, use USYS_StatusSelect to filter USYS_FindPersonnel_Results2 to USYS_FindPersonnel_Results3 BEGIN -- Create temp tables for include and exclude
  • 7. enties SELECT Status INTO #includestatus FROM dbo.USYS_StatusSelect WHERE (Include > 0) AND (TerminalID = HOST_ID()) -- SELECT Status INTO #excludestatus FROM dbo.USYS_StatusSelect WHERE (Include < 0) AND (TerminalID = HOST_ID()) -- -- Build action query SET @sqlstatement = '' -- IF Exists (SELECT * FROM #includestatus) SET @sqlstatement = '(P.Status IN (SELECT Status FROM #includestatus))' -- IF Exists (SELECT * FROM #excludestatus) BEGIN IF (Len(@sqlstatement) > 0) SET @sqlstatement = @sqlstatement + ' AND ' -- SET @sqlstatement = @sqlstatement + '(P.Status NOT IN (SELECT Status FROM #excludestatus))' END -- SET @sqlstatement = 'INSERT INTO USYS_FindPersonnel_Results' + Cast((@TempFileIndex + 1) as varchar) + ' (PersonnelID) SELECT P.PersonnelID FROM dbo.tblPersonnel AS P ' + 'RIGHT OUTER JOIN dbo.USYS_FindPersonnel_Results' + Cast(@TempFileIndex as varchar) + ' AS U ' + 'ON P.PersonnelID = U.PersonnelID ' + 'WHERE ((U.TerminalID = HOST_ID()) AND ' + @sqlstatement + ')' -- --INSERT USYS_MSG VALUES (@sqlstatement) -- EXEC sp_executesql @sqlstatement SET @TempFileIndex = @TempFileIndex + 1 END -- -- Ensure result in dbo.USYS_FindPersonnel_Results5 IF (@TempFileIndex < 3) BEGIN
  • 8. -- Move result SET @sqlstatement = 'INSERT INTO USYS_FindPersonnel_Results3 (PersonnelID) SELECT PersonnelID FROM dbo.USYS_FindPersonnel_Results' + Cast(@TempFileIndex as varchar) + ' WHERE TerminalID = HOST_ID()' EXEC sp_executesql @sqlstatement --select @sqlstatement END -- -- Return recordset size SELECT COUNT(PersonnelID) AS CountOfRecordset FROM USYS_FindPersonnel_Results3 WHERE TerminalID = HOST_ID()