25 lines
1.1 KiB
Transact-SQL
25 lines
1.1 KiB
Transact-SQL
CREATE OR ALTER VIEW [dbo].[Prj_V_ProjectMember]
|
|
AS
|
|
SELECT
|
|
pm.[Id],
|
|
ISNULL(pc.[PackageCount], 0) AS [PackageCount],
|
|
CAST(ISNULL(mr.[ManMonthTotal], 0) AS decimal(18, 4)) AS [ManMonthTotal],
|
|
ISNULL(mr.[WorkedMonths], 0) AS [WorkedMonths],
|
|
CAST(ISNULL(mr.[ManMonthTotal], 0) * ISNULL(pm.[AvgMonthlyCost], 0) AS decimal(18, 4)) AS [TotalCost]
|
|
FROM [dbo].[Prj_T_ProjectMember] pm
|
|
OUTER APPLY (
|
|
SELECT COUNT(*) AS [PackageCount]
|
|
FROM [dbo].[Prj_T_WorkPackageMember] wm
|
|
INNER JOIN [dbo].[Prj_T_WorkPackage] w ON w.[Id] = wm.[WorkPackageId]
|
|
WHERE wm.[UserId] = pm.[UserId] AND w.[ProjectId] = pm.[ProjectId]
|
|
AND wm.[IsDeleted] = 0 AND w.[IsDeleted] = 0
|
|
) pc
|
|
OUTER APPLY (
|
|
SELECT SUM(r.[Rate]) / 100.0 AS [ManMonthTotal],
|
|
COUNT(DISTINCT r.[Year] * 100 + r.[Month]) AS [WorkedMonths]
|
|
FROM [dbo].[Prj_T_WorkPackageMonthRate] r
|
|
INNER JOIN [dbo].[Prj_T_WorkPackage] w ON w.[Id] = r.[WorkPackageId]
|
|
WHERE r.[UserId] = pm.[UserId] AND w.[ProjectId] = pm.[ProjectId]
|
|
AND r.[IsDeleted] = 0 AND w.[IsDeleted] = 0
|
|
) mr
|
|
GO
|