Migration Script 7을 실행하여 Project Server 2003과 Project Server 2007의 데이터 유효성 검사 스냅숏 비교

 

적용 대상: Project Server 2010

마지막으로 수정된 항목: 2012-03-16

Migration Script 7은 마이그레이션 전의 Microsoft Office Project Server 2003 데이터 스냅숏(Script 3을 통해 생성)과 마이그레이션 후의 Microsoft Office Project Server 2007 데이터 스냅숏(Script 5를 통해 생성)을 비교합니다. Script 7은 다음 작업을 수행합니다.

  1. 임시 데이터베이스로 마이그레이션되지 않는 프로젝트 나열(Office Project Server 2007의 게시된 데이터베이스가 아닌 Project Server 2003에 있는 기존 프로젝트)

  2. 특정 필드에서 차이가 있는 고유한 프로젝트 이름 나열

  3. 특정 필드에서 차이가 있는 고유한 프로젝트 이름 및 작업 나열

이 스크립트는 작업 및 프로젝트의 작업, 기간 및 비용 필드에 대한 변수를 설정합니다. 이러한 변수는 양의 오차 한계보다 크거나 음의 오차 한계(백분율 단위)보다 작은 다양한 필드의 차이를 결정하는 데 사용됩니다. 이 기능을 사용하면 사용자가 오차 한계 이내의 차이를 무시하고 큰 차이에 대해서만 집중할 수 있습니다.

경고

이 스크립트는 Project Server VME(가상 마이그레이션 환경)에 포함된 여러 마이그레이션 후 스크립트 중 하나입니다. 이 스크립트를 실행하는 것은 선택 사항이지만 데이터를 성공적으로 마이그레이션하는 데 방해가 될 수 있는 문제를 손쉽게 검색하려면 실행하는 것이 좋습니다. 마이그레이션 후 스크립트에 대한 자세한 내용은 Project Server VME: 마이그레이션 후 스크립트 실행(선택 사항)을 참조하십시오.

Script 7을 실행하려면

  1. VME 바탕 화면에서 **Start Migration Process(마이그레이션 프로세스 시작)**를 클릭합니다. 그러면 E 드라이브의 콘텐츠가 표시된 Windows 탐색기 창이 열립니다.

  2. Windows 탐색기에서 다음 폴더를 두 번 클릭합니다.

    • 데이터베이스가 하나인 경우 Migrate_Proj_2003_Single_DB 폴더를 엽니다.

    • Project Server 2003 데이터베이스가 분할되어 있는 경우 Migrate_Proj_2003_Split_DB를 엽니다.

  3. Verification Scripts 폴더를 연 다음 VME Script 7.sql을 클릭합니다. 그러면 SQL Server Management Studio가 열리고 Script 7이 표시됩니다.

  4. **Execute(실행)**를 클릭하여 스크립트를 실행합니다.

  5. 결과를 확인합니다.

중요

스크립트의 결과에서 Project Server 2003 및 Office Project Server 2007 간의 작업 식별자 불일치 항목이 잘못 보고될 수 있습니다. 예를 들어 Project Server 2003에서 Office Project Server 2007로 마이그레이션된 작업을 비교하는 경우 Project Server 2003 TASK_UID가 Project Server 2003 TASK_ID와 일치하지 않을 수 있습니다. 프로젝트 내에서 작업을 삽입, 삭제 및 이동할 때 Project Server 2003에서 작업에 일치하지 않는 UID 및 ID를 지정할 수 있기 때문입니다. Script 7의 결과에 이러한 유형의 불일치 항목이 표시되는 경우에는 원본 환경에서 Microsoft Project Professional 2010에 표시된 값을 마이그레이션된 환경의 값과 비교하여 마이그레이션된 값이 올바른지 확인할 수 있습니다. 이러한 값이 일치하는 경우 Script 7에서 보고한 불일치 항목은 잘못된 것이므로 무시해도 됩니다.

Script 7

Script 7에는 다음과 같은 코드가 포함되어 있습니다.

/*---------------------------------------------------------------------------------------
-- Script A7: Compares data validation snapshot between Pre-Migration (2003) and Post-Migration (2007) databases ----
-- This script:
-- 1. Compares the project data before and after the migration from Project Server 2003 SP3 to Project Server 2003 SP2
-- 2. List the projects not migrated to the draft database (existing in Project Server 2003 but missing in 2007)
   3. List the distinct project names with differences on specific fields
   4. List the distinct project names and tasks with differences on specific fields
   5. Adjust to parameters by using variables containing the % of difference between the Project 2003 and 2007 data
   
   This script requires you to set the database names of the Migration Validation Database.
   By default we have: USE ProjectServer_Migration_Data_Validation
   
   This script allows you to set variables for the Work, Duration and Cost fields of the projects and tasks. The variables are used 
   to expose the differences on various fields which are either greater to the positive margin of error (in %) or smaller than 
   the negative margin of error (in %). This feature allows the user to ignore the differences which are within the margin of error, 
   and focus on the significant differences.
   
-- ************************************************ BEGIN DECLARE VARIABLES ************************************************ --
*/
DECLARE @Work_Ratio decimal(18,4);-- Variable to set the Work Ratio differences in % (+ or -) which are tolerable
DECLARE @Duration_Ratio decimal(18,4);-- Variable to set the Duration Ratio differences in % (+ or -) which are tolerable
DECLARE @Cost_Ratio decimal(18,4);-- Variable to set the Cost Ratio differences in % (+ or -) which are tolerable

--------------------------------------------  END DECLARE VARIABLES  ---------------------------------------------

-- *********************************************** BEGIN SET VARIABLE VALUES *********************************************** --

SET @Work_Ratio = 0.005;-- Set the Work Ratio to a % to ignore differences (+ or -) which are tolerable
SET @Duration_Ratio = 0.005;-- Set local variable to a % to ignore differences (+ or -) which are tolerable
SET @Cost_Ratio = 0.005;-- Set local variable to a % to ignore differences (+ or -) which are tolerable

------------------------------------------  END SET VARIABLE VALUES  -----------------------------------------------
  
 ----------------------------------------------------------------------------------------------*/

USE ProjectServer_Migration_Data_Validation

--------------------------------------------------
-- List of Projects not migrated to the Project Server 2007 Draft database
--------------------------------------------------
select distinct [Project Name] AS 'List of Projects not migrated to the Project Server 2007 Draft database' 
from Migration_PS2003_Data_Validation_Snapshot 
where replace([Project Name], '.Published', '_Published') not in 
(select [Project Name] from Migration_PS2007_Data_Validation_Snapshot)
and Migration_PS2003_Data_Validation_Snapshot.[proj type] in (0,1,100)


--------------------------------------------------
-- Projects with different start date
--------------------------------------------------
select 
Migration_PS2003_Data_Validation_Snapshot.[Project Name] 
AS 'List of Projects with Project Start Dates not Matching After Migration', 
datediff(day, 
Migration_PS2003_Data_Validation_Snapshot.[Proj Start Date],
Migration_PS2007_Data_Validation_Snapshot.[Proj Start Date]) 
as Difference_in_Days
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot WITH (NOLOCK)
where
REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] and 
Migration_PS2003_Data_Validation_Snapshot.[Proj Start Date] 
<> Migration_PS2007_Data_Validation_Snapshot.[Proj Start Date]
order by Difference_in_Days



--------------------------------------------------
-- Projects with different finish date
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name] 
AS 'List of Projects with Project Finish Dates not Matching After Migration', 
Migration_PS2003_Data_Validation_Snapshot.[Proj Finish Date], 
Migration_PS2007_Data_Validation_Snapshot.[Proj Finish Date],
datediff(day, 
Migration_PS2003_Data_Validation_Snapshot.[Proj Finish Date],Migration_PS2007_Data_Validation_Snapshot.[Proj Finish Date]) 
as Difference_in_Days
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 
REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] and 
Migration_PS2003_Data_Validation_Snapshot.[Proj Finish Date] <> Migration_PS2007_Data_Validation_Snapshot.[Proj Finish Date]
order by Difference_in_Days


--------------------------------------------------
-- Projects with different Project Work
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Work not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Work] AS 'Project 2003 Work'
, Migration_PS2007_Data_Validation_Snapshot.[Task Work] AS 'Project 2007 Work',
(Migration_PS2003_Data_Validation_Snapshot.[Task Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Work]) as 'Work Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Work] <> Migration_PS2007_Data_Validation_Snapshot.[Task Work]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Work])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Work])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Work Difference'


--------------------------------------------------
-- Projects with different Actual Work
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Actual Work not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] AS 'Project 2003 Actual Work'
, Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work] AS 'Project 2007 Actual Work',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work]) as 'Actual Work Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Actual Work Difference'

--------------------------------------------------
-- Projects with different Remaining Work 
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Remaining Work not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] AS 'Project 2003 Rem Work'
, Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work] AS 'Project 2007 Rem Work',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work]) as 'Rem Work Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Rem Work Difference'


--------------------------------------------------
-- Projects with different Project % Complete
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Task % Complete not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task %Complete] AS 'Project 2003 %Complete'
, Migration_PS2007_Data_Validation_Snapshot.[Task %Complete] AS 'Project 2007 %Complete',
(Migration_PS2003_Data_Validation_Snapshot.[Task %Complete] 
- Migration_PS2007_Data_Validation_Snapshot.[Task %Complete]) as '%Complete Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task %Complete] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task %Complete]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by '%Complete Difference'


--------------------------------------------------
-- Projects with different Project %Work Complete
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Task %Work Complete not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task %Work Complete] AS 'Project 2003 %Work Complete'
, Migration_PS2007_Data_Validation_Snapshot.[Task % Work Complete] AS 'Project 2007 %Work Complete',
(Migration_PS2003_Data_Validation_Snapshot.[Task %Work Complete] 
- Migration_PS2007_Data_Validation_Snapshot.[Task % Work Complete]) as '%Work Complete Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task %Work Complete] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task % Work Complete]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by '%Work Complete Difference'


----------------------------------------------------
-- Projects with different Task % Phys Work Complete
----------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Task % Phys Work Complete not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task % Phys Work Complete] AS 'Project 2003 % Phys Work Complete'
, Migration_PS2007_Data_Validation_Snapshot.[Task % Phys Work Complete] AS 'Project 2007 % Phys Work Complete',
(Migration_PS2003_Data_Validation_Snapshot.[Task % Phys Work Complete]  
- Migration_PS2007_Data_Validation_Snapshot.[Task % Phys Work Complete]) as '% Phys Work Complete Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task % Phys Work Complete] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task % Phys Work Complete]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by '% Phys Work Complete Difference'



--------------------------------------------------
-- Projects with different Duration
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Duration not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Duration] AS 'Project 2003 Duration'
, Migration_PS2007_Data_Validation_Snapshot.[Task Duration] AS 'Project 2007 Duration',
(Migration_PS2003_Data_Validation_Snapshot.[Task Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Duration]) as 'Duration Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Duration] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Duration]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Duration] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Duration])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Duration] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Duration])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Duration Difference'

--------------------------------------------------
-- Projects with different Remaining Duration
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Remaining Duration not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration]  AS 'Project 2003 Rem Duration'
, Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration] AS 'Project 2007 Rem Duration',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration]) as 'Rem Duration Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Rem Duration Difference'

--------------------------------------------------
-- Projects with different Actual Duration
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Actual Duration not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration]  AS 'Project 2003 Actual Duration'
, Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration] AS 'Project 2007 Actual Duration',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration]) as 'Actual Duration Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration])/100))
and (Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration]) != -1
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Actual Duration Difference'


--------------------------------------------------
-- Projects with different Cost
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Cost not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Cost]  AS 'Project 2003 Cost'
, Migration_PS2007_Data_Validation_Snapshot.[Task Cost] AS 'Project 2007 Cost',
(Migration_PS2003_Data_Validation_Snapshot.[Task Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Cost]) as 'Cost Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Cost] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Cost]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Cost])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Cost])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Cost Difference'

--------------------------------------------------
-- Projects with different Fixed Cost
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Fixed Cost not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost]  AS 'Project 2003 Fixed Cost'
, Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost] AS 'Project 2007 Fixed Cost',
(Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost]) as 'Fixed Cost Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Fixed Cost Difference'

--------------------------------------------------
-- Projects with different Actual Cost
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Actual Cost not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost]  AS 'Project 2003 Actual Cost'
, Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost] AS 'Project 2007 Actual Cost',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost]) as 'Actual Cost Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Actual Cost Difference' 

--------------------------------------------------
-- Projects with different Remaining Cost
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Remaining Cost not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost]  AS 'Project 2003 Rem Cost'
, Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost] AS 'Project 2007 Rem Cost',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost]) as 'Rem Cost Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot --WITH (NOLOCK)
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Rem Cost Difference'

--------------------------------------------------
-- Projects with different Overtime Cost
--------------------------------------------------
select distinct
Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with Project Overtime Cost not Matching After Migration'
, Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost]  AS 'Project 2003 Ovt Cost'
, Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost] AS 'Project 2007 Ovt Cost',
(Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost]) as 'Ovt Cost Difference'
from 
Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot 
where 

REPLACE(Migration_PS2003_Data_Validation_Snapshot.[Project Name],'.Published','_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] 
and Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost] 
<> Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost])/100)
or
((Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost])/100))
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1
order by 'Ovt Cost Difference'

----------------------------------------------------------------------
/* Distinct Projects with one or more mismatch 
---------------------------------------------------------------------*/
select Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects with at least one mismatch After Migration',
datediff(day, 
Migration_PS2003_Data_Validation_Snapshot.[Proj Start Date],
Migration_PS2007_Data_Validation_Snapshot.[Proj Start Date]) as Start_Date_Diff_in_Days,
datediff(day, 
Migration_PS2003_Data_Validation_Snapshot.[Proj Finish Date],
Migration_PS2007_Data_Validation_Snapshot.[Proj Finish Date]) as Finish_Date_Diff_in_Days,
(Migration_PS2003_Data_Validation_Snapshot.[Task Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Work]) as 'Work Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work]) as 'Actual Work Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work]) as 'Rem Work Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task %Complete] 
- Migration_PS2007_Data_Validation_Snapshot.[Task %Complete]) as '%Complete Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task %Work Complete] 
- Migration_PS2007_Data_Validation_Snapshot.[Task % Work Complete]) as '%Work Complete Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task % Phys Work Complete]  
- Migration_PS2007_Data_Validation_Snapshot.[Task % Phys Work Complete]) as '% Phys Work Complete Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Duration]) as 'Duration Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration]) as 'Rem Duration Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration]) as 'Actual Duration Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Cost]) as 'Cost Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost]) as 'Fixed Cost Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost]) as 'Actual Cost Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost]) as 'Rem Cost Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost]) as 'Ovt Cost Diff'


from Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot
where 
replace(Migration_PS2003_Data_Validation_Snapshot.[Project Name], '.Published', '_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] and
(
Migration_PS2003_Data_Validation_Snapshot.[Proj Start Date] <> Migration_PS2007_Data_Validation_Snapshot.[Proj Start Date] or
Migration_PS2003_Data_Validation_Snapshot.[Proj Finish Date] <> Migration_PS2007_Data_Validation_Snapshot.[Proj Finish Date] 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Work] <> Migration_PS2007_Data_Validation_Snapshot.[Task Work]
   and ((Migration_PS2003_Data_Validation_Snapshot.[Task Work]- Migration_PS2007_Data_Validation_Snapshot.[Task Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Work])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Work] - Migration_PS2007_Data_Validation_Snapshot.[Task Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Work])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] <> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work]- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] - Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] <> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work]- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] - Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work])/100))) 
or Migration_PS2003_Data_Validation_Snapshot.[Task %Complete] <> Migration_PS2007_Data_Validation_Snapshot.[Task %Complete] 
or Migration_PS2003_Data_Validation_Snapshot.[Task %Work Complete]<> Migration_PS2007_Data_Validation_Snapshot.[Task % Work Complete]
or Migration_PS2003_Data_Validation_Snapshot.[Task % Phys Work Complete] <> Migration_PS2007_Data_Validation_Snapshot.[Task % Phys Work Complete]
or (Migration_PS2003_Data_Validation_Snapshot.[Task Duration] <> Migration_PS2007_Data_Validation_Snapshot.[Task Duration]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Duration]- Migration_PS2007_Data_Validation_Snapshot.[Task Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Duration])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Duration] - Migration_PS2007_Data_Validation_Snapshot.[Task Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Duration])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration] <> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration]- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration] - Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration] <> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration]- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration] - Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration])/100)))
or (Migration_PS2003_Data_Validation_Snapshot.[Task Cost] <> Migration_PS2007_Data_Validation_Snapshot.[Task Cost]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Cost])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost]<> Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost])/100)))
or (Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost] <> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost])/100)))
or (Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost] <> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost])/100)))
or (Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost] <> Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost])/100)))
)
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]= 0
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
and Migration_PS2007_Data_Validation_Snapshot.[Task Type] = 1

----------------------------------------------------------------------
/* Distinct Projects and Tasks with one or more mismatch 
---------------------------------------------------------------------*/
select distinct Migration_PS2003_Data_Validation_Snapshot.[Project Name]
AS 'List of Projects and tasks with at least one mismatch after Migration',
Migration_PS2007_Data_Validation_Snapshot.[Task Name],
Migration_PS2007_Data_Validation_Snapshot.[Task ID],
Migration_PS2007_Data_Validation_Snapshot.[Task Type],
datediff(day, 
Migration_PS2003_Data_Validation_Snapshot.[Proj Start Date],
Migration_PS2007_Data_Validation_Snapshot.[Proj Start Date]) as Start_Date_Diff_in_Days,
datediff(day, 
Migration_PS2003_Data_Validation_Snapshot.[Proj Finish Date],
Migration_PS2007_Data_Validation_Snapshot.[Proj Finish Date]) as Finish_Date_Diff_in_Days,
(Migration_PS2003_Data_Validation_Snapshot.[Task Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Work]) as 'Work Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work]) as 'Actual Work Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] 
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work]) as 'Rem Work Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task %Complete] 
- Migration_PS2007_Data_Validation_Snapshot.[Task %Complete]) as '%Complete Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task %Work Complete] 
- Migration_PS2007_Data_Validation_Snapshot.[Task % Work Complete]) as '%Work Complete Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task % Phys Work Complete]  
- Migration_PS2007_Data_Validation_Snapshot.[Task % Phys Work Complete]) as '% Phys Work Complete Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Duration]) as 'Duration Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration]) as 'Rem Duration Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration]) as 'Actual Duration Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Cost]) as 'Cost Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost]) as 'Fixed Cost Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost]) as 'Actual Cost Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost]) as 'Rem Cost Diff',
(Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost]  
- Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost]) as 'Ovt Cost Diff'


from Migration_PS2003_Data_Validation_Snapshot, Migration_PS2007_Data_Validation_Snapshot
where 
replace(Migration_PS2003_Data_Validation_Snapshot.[Project Name], '.Published', '_Published') 
= Migration_PS2007_Data_Validation_Snapshot.[Project Name] and
(
Migration_PS2003_Data_Validation_Snapshot.[Proj Start Date] <> Migration_PS2007_Data_Validation_Snapshot.[Proj Start Date] or
Migration_PS2003_Data_Validation_Snapshot.[Proj Finish Date] <> Migration_PS2007_Data_Validation_Snapshot.[Proj Finish Date] 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Work] <> Migration_PS2007_Data_Validation_Snapshot.[Task Work]
   and ((Migration_PS2003_Data_Validation_Snapshot.[Task Work]- Migration_PS2007_Data_Validation_Snapshot.[Task Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Work])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Work] - Migration_PS2007_Data_Validation_Snapshot.[Task Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Work])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] <> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work]- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work] - Migration_PS2007_Data_Validation_Snapshot.[Task Actual Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Work])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] <> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work]- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work] - Migration_PS2007_Data_Validation_Snapshot.[Task Rem Work])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Work])/100))) 
or Migration_PS2003_Data_Validation_Snapshot.[Task %Complete] <> Migration_PS2007_Data_Validation_Snapshot.[Task %Complete] 
or Migration_PS2003_Data_Validation_Snapshot.[Task %Work Complete]<> Migration_PS2007_Data_Validation_Snapshot.[Task % Work Complete]
or Migration_PS2003_Data_Validation_Snapshot.[Task % Phys Work Complete] <> Migration_PS2007_Data_Validation_Snapshot.[Task % Phys Work Complete]
or (Migration_PS2003_Data_Validation_Snapshot.[Task Duration] <> Migration_PS2007_Data_Validation_Snapshot.[Task Duration]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Duration]- Migration_PS2007_Data_Validation_Snapshot.[Task Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Duration])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Duration] - Migration_PS2007_Data_Validation_Snapshot.[Task Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Duration])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration] <> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration]- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration] - Migration_PS2007_Data_Validation_Snapshot.[Task Rem Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Duration])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration] <> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration]- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration] - Migration_PS2007_Data_Validation_Snapshot.[Task Actual Duration])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Duration])/100)))
or (Migration_PS2003_Data_Validation_Snapshot.[Task Cost] <> Migration_PS2007_Data_Validation_Snapshot.[Task Cost]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Cost])/100))) 
or (Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost]<> Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Fixed Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Fixed Cost])/100)))
or (Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost] <> Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Actual Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Actual Cost])/100)))
or (Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost] <> Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost]
    and ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Rem Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Rem Cost])/100)))
or (Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost] <> Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost]
and ((Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost]- Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost])
> ((@Work_Ratio * Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost])/100)
or ((Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost] - Migration_PS2007_Data_Validation_Snapshot.[Task Ovt Cost])
 < ((@Work_Ratio*-1)* Migration_PS2003_Data_Validation_Snapshot.[Task Ovt Cost])/100)))
)
and Migration_PS2003_Data_Validation_Snapshot.[Task UID]  
= Migration_PS2007_Data_Validation_Snapshot.[Task ID]
and Migration_PS2003_Data_Validation_Snapshot.[Task Type] = 
    Migration_PS2007_Data_Validation_Snapshot.[Task Type] 
order by Migration_PS2003_Data_Validation_Snapshot.[Project Name],
Migration_PS2007_Data_Validation_Snapshot.[Task ID]