675
社区成员




SELECT '2015Budget' as 版本号, a.AutoID, a.ProjectCode,ProjectDescription, (select ChineseName from MDE_Employees where EmployeeID=c.ProjectOwner) ChineseName,
c.Costcenter,AccountingName, CompanyName,typeName, ProjectStausName,c.BudgetAmount BudgetAmount,(ISNULL(c.BudgetAmount,a.BudgetAmount)-RecordedAmount-PromisedAmount-ISNULL(AccruedAmount,0)-isnull(FrozenAmount,0)) as BalanceAmount, PromisedAmount, RecordedAmount,AccruedAmount, FromDate,ToDate, (case when UseCostcenter='0' then '所有成本中心'else UseCostcenter end) UseCostcenter , isnull((AppEmployeeID+'-'+b.ChineseName),'') AppEmployeeID,ApplicationDate,'己批准' as ProjectStatus
FROM vw_getOpenProjectList a left join MDE_Employees as b on a.AppEmployeeID=b.EmployeeID
inner JOIN tbProjectBudgetInfo c ON a.ProjectCode=c.ProjectCode
and c.BudgetVersion='2015Budget'
union all
SELECT '2015LE1' as 版本号, a.AutoID, a.ProjectCode,ProjectDescription, (select ChineseName from MDE_Employees where EmployeeID=c.ProjectOwner) ChineseName,
c.Costcenter,AccountingName, CompanyName,typeName, ProjectStausName,c.BudgetAmount BudgetAmount,(ISNULL(c.BudgetAmount,a.BudgetAmount)-RecordedAmount-PromisedAmount-ISNULL(AccruedAmount,0)-isnull(FrozenAmount,0)) as BalanceAmount, PromisedAmount, RecordedAmount,AccruedAmount, FromDate,ToDate, (case when UseCostcenter='0' then '所有成本中心'else UseCostcenter end) UseCostcenter , isnull((AppEmployeeID+'-'+b.ChineseName),'') AppEmployeeID,ApplicationDate,'己批准' as ProjectStatus
FROM vw_getOpenProjectList a left join MDE_Employees as b on a.AppEmployeeID=b.EmployeeID
inner JOIN tbProjectBudgetInfo c ON a.ProjectCode=c.ProjectCode
and c.BudgetVersion='2015LE1'
--方法1
;WITH T AS(
...
)
SELECT * FROM T T1
WHERE EXISTS(SELECT 1 FROM T T2 WHERE T1.ProjectCode=T2.ProjectCode
AND T1.版本号<>T2.版本号)
--方法2
;WITH T AS(
...
)
,T2 AS(
SELECT *,COUNT(1)OVER(PARTITION BY ProjectCode)C
FROM T
)
SELECT * FROM T2 WHERE C>1
create Proc Pro_CompareProjectInfoByBudVersion
(
@budgetVersion1 varchar(20),
@budgetVersion2 varchar(20)
)
WITH T AS(
SELECT @budgetVersion1 as budgetVersion, a.AutoID, a.ProjectCode,ProjectDescription, (select ChineseName from MDE_Employees where EmployeeID=c.ProjectOwner) ChineseName,
c.Costcenter,AccountingName, CompanyName,typeName, ProjectStausName,c.BudgetAmount BudgetAmount,(ISNULL(c.BudgetAmount,a.BudgetAmount)-RecordedAmount-PromisedAmount-ISNULL(AccruedAmount,0)-isnull(FrozenAmount,0)) as BalanceAmount, PromisedAmount, RecordedAmount,AccruedAmount, FromDate,ToDate, (case when UseCostcenter='0' then '所有成本中心'else UseCostcenter end) UseCostcenter , isnull((AppEmployeeID+'-'+b.ChineseName),'') AppEmployeeID,ApplicationDate,'己批准' as ProjectStatus
FROM vw_getOpenProjectList a left join MDE_Employees as b on a.AppEmployeeID=b.EmployeeID
inner JOIN tbProjectBudgetInfo c ON a.ProjectCode=c.ProjectCode
and c.BudgetVersion='2015Budget'
union all
SELECT @budgetVersion2 as budgetVersion, a.AutoID, a.ProjectCode,ProjectDescription, (select ChineseName from MDE_Employees where EmployeeID=c.ProjectOwner) ChineseName,
c.Costcenter,AccountingName, CompanyName,typeName, ProjectStausName,c.BudgetAmount BudgetAmount,(ISNULL(c.BudgetAmount,a.BudgetAmount)-RecordedAmount-PromisedAmount-ISNULL(AccruedAmount,0)-isnull(FrozenAmount,0)) as BalanceAmount, PromisedAmount, RecordedAmount,AccruedAmount, FromDate,ToDate, (case when UseCostcenter='0' then '所有成本中心'else UseCostcenter end) UseCostcenter , isnull((AppEmployeeID+'-'+b.ChineseName),'') AppEmployeeID,ApplicationDate,'己批准' as ProjectStatus
FROM vw_getOpenProjectList a left join MDE_Employees as b on a.AppEmployeeID=b.EmployeeID
inner JOIN tbProjectBudgetInfo c ON a.ProjectCode=c.ProjectCode
and c.BudgetVersion='2015LE1'
)
SELECT * FROM T T1
WHERE EXISTS(SELECT 1 FROM T T2 WHERE T1.ProjectCode=T2.ProjectCode
AND T1.budgetVersion<>T2.budgetVersion ) order by T1.ProjectCode,T1.budgetVersion
order by T1.ProjectCode, 版本号
WITH T AS(
SELECT '2015Budget' as 版本号, a.AutoID, a.ProjectCode,ProjectDescription, (select ChineseName from MDE_Employees where EmployeeID=c.ProjectOwner) ChineseName,
c.Costcenter,AccountingName, CompanyName,typeName, ProjectStausName,c.BudgetAmount BudgetAmount,(ISNULL(c.BudgetAmount,a.BudgetAmount)-RecordedAmount-PromisedAmount-ISNULL(AccruedAmount,0)-isnull(FrozenAmount,0)) as BalanceAmount, PromisedAmount, RecordedAmount,AccruedAmount, FromDate,ToDate, (case when UseCostcenter='0' then '所有成本中心'else UseCostcenter end) UseCostcenter , isnull((AppEmployeeID+'-'+b.ChineseName),'') AppEmployeeID,ApplicationDate,'己批准' as ProjectStatus
FROM vw_getOpenProjectList a left join MDE_Employees as b on a.AppEmployeeID=b.EmployeeID
inner JOIN tbProjectBudgetInfo c ON a.ProjectCode=c.ProjectCode
and c.BudgetVersion='2015Budget'
union all
SELECT '2015LE1' as 版本号, a.AutoID, a.ProjectCode,ProjectDescription, (select ChineseName from MDE_Employees where EmployeeID=c.ProjectOwner) ChineseName,
c.Costcenter,AccountingName, CompanyName,typeName, ProjectStausName,c.BudgetAmount BudgetAmount,(ISNULL(c.BudgetAmount,a.BudgetAmount)-RecordedAmount-PromisedAmount-ISNULL(AccruedAmount,0)-isnull(FrozenAmount,0)) as BalanceAmount, PromisedAmount, RecordedAmount,AccruedAmount, FromDate,ToDate, (case when UseCostcenter='0' then '所有成本中心'else UseCostcenter end) UseCostcenter , isnull((AppEmployeeID+'-'+b.ChineseName),'') AppEmployeeID,ApplicationDate,'己批准' as ProjectStatus
FROM vw_getOpenProjectList a left join MDE_Employees as b on a.AppEmployeeID=b.EmployeeID
inner JOIN tbProjectBudgetInfo c ON a.ProjectCode=c.ProjectCode
and c.BudgetVersion='2015LE1'
)
SELECT * FROM T T1
WHERE EXISTS(SELECT 1 FROM T T2 WHERE T1.ProjectCode=T2.ProjectCode
AND T1.版本号<>T2.版本号 ) order by T1.ProjectCode
SELECT '2015Budget' as 版本号, a.AutoID, a.ProjectCode,ProjectDescription, (select ChineseName from MDE_Employees where EmployeeID=c.ProjectOwner) ChineseName,
c.Costcenter,AccountingName, CompanyName,typeName, ProjectStausName,c.BudgetAmount BudgetAmount,(ISNULL(c.BudgetAmount,a.BudgetAmount)-RecordedAmount-PromisedAmount-ISNULL(AccruedAmount,0)-isnull(FrozenAmount,0)) as BalanceAmount, PromisedAmount, RecordedAmount,AccruedAmount, FromDate,ToDate, (case when UseCostcenter='0' then '所有成本中心'else UseCostcenter end) UseCostcenter , isnull((AppEmployeeID+'-'+b.ChineseName),'') AppEmployeeID,ApplicationDate,'己批准' as ProjectStatus
FROM vw_getOpenProjectList a left join MDE_Employees as b on a.AppEmployeeID=b.EmployeeID
inner JOIN tbProjectBudgetInfo c ON a.ProjectCode=c.ProjectCode
and c.BudgetVersion='2015Budget'
union all
SELECT '2015LE1' as 版本号, a.AutoID, a.ProjectCode,ProjectDescription, (select ChineseName from MDE_Employees where EmployeeID=c.ProjectOwner) ChineseName,
c.Costcenter,AccountingName, CompanyName,typeName, ProjectStausName,c.BudgetAmount BudgetAmount,(ISNULL(c.BudgetAmount,a.BudgetAmount)-RecordedAmount-PromisedAmount-ISNULL(AccruedAmount,0)-isnull(FrozenAmount,0)) as BalanceAmount, PromisedAmount, RecordedAmount,AccruedAmount, FromDate,ToDate, (case when UseCostcenter='0' then '所有成本中心'else UseCostcenter end) UseCostcenter , isnull((AppEmployeeID+'-'+b.ChineseName),'') AppEmployeeID,ApplicationDate,'己批准' as ProjectStatus
FROM vw_getOpenProjectList a left join MDE_Employees as b on a.AppEmployeeID=b.EmployeeID
inner JOIN tbProjectBudgetInfo c ON a.ProjectCode=c.ProjectCode
and c.BudgetVersion='2015LE1'
ORDER BY ProjectCode