21 lines
1.3 KiB
SQL
21 lines
1.3 KiB
SQL
CREATE OR REPLACE VIEW public."Prj_V_PersonnelManMonth"
|
|
AS
|
|
SELECT
|
|
r."Id", r."TenantId", r."IsDeleted",
|
|
p."Id" AS "ProjectId", p."ProjectNo", p."Name" AS "ProjectName",
|
|
w."Id" AS "WorkPackageId", w."Code" AS "WorkPackageCode", w."Name" AS "WorkPackageName",
|
|
r."Year", r."Month", make_date(r."Year", r."Month", 1) AS "PeriodDate",
|
|
r."UserId",
|
|
r."Rate" AS "ManMonthValue",
|
|
COALESCE(u."Rate", 100)::numeric(18,4) AS "MonthlyRate",
|
|
(r."Rate" * COALESCE(u."Rate", 100) / 100.0)::numeric(18,4) AS "EffectiveRate",
|
|
COALESCE(pm."AvgMonthlyCost", 0)::numeric(18,4) AS "UnitCost",
|
|
(COALESCE(pm."AvgMonthlyCost", 0) * r."Rate" * COALESCE(u."Rate", 100) / 10000.0)::numeric(18,4) AS "TotalCost"
|
|
FROM public."Prj_T_WorkPackageMonthRate" r
|
|
INNER JOIN public."Prj_T_WorkPackage" w ON w."Id" = r."WorkPackageId" AND w."IsDeleted" = FALSE
|
|
INNER JOIN public."Prj_T_Project" p ON p."Id" = w."ProjectId" AND p."IsDeleted" = FALSE
|
|
LEFT JOIN public."Prj_T_UserMonthRate" u
|
|
ON u."UserId" = r."UserId" AND u."Year" = r."Year" AND u."Month" = r."Month"
|
|
AND u."TenantId" IS NOT DISTINCT FROM r."TenantId" AND u."IsDeleted" = FALSE
|
|
LEFT JOIN public."Prj_T_ProjectMember" pm
|
|
ON pm."ProjectId" = p."Id" AND pm."UserId" = r."UserId" AND pm."IsDeleted" = FALSE;
|