CREATE OR REPLACE VIEW public."Prj_V_ProjectMember" AS SELECT pm."Id", COALESCE(pc."PackageCount", 0)::integer AS "PackageCount", COALESCE(mr."ManMonthTotal", 0)::numeric(18,4) AS "ManMonthTotal", COALESCE(mr."WorkedMonths", 0)::integer AS "WorkedMonths", (COALESCE(mr."ManMonthTotal", 0) * COALESCE(pm."AvgMonthlyCost", 0))::numeric(18,4) AS "TotalCost" FROM public."Prj_T_ProjectMember" pm LEFT JOIN LATERAL ( SELECT COUNT(*) AS "PackageCount" FROM public."Prj_T_WorkPackageMember" wm INNER JOIN public."Prj_T_WorkPackage" w ON w."Id" = wm."WorkPackageId" WHERE wm."UserId" = pm."UserId" AND w."ProjectId" = pm."ProjectId" AND wm."IsDeleted" = FALSE AND w."IsDeleted" = FALSE ) pc ON TRUE LEFT JOIN LATERAL ( SELECT SUM(r."Rate") / 100.0 AS "ManMonthTotal", COUNT(DISTINCT r."Year" * 100 + r."Month") AS "WorkedMonths" FROM public."Prj_T_WorkPackageMonthRate" r INNER JOIN public."Prj_T_WorkPackage" w ON w."Id" = r."WorkPackageId" WHERE r."UserId" = pm."UserId" AND w."ProjectId" = pm."ProjectId" AND r."IsDeleted" = FALSE AND w."IsDeleted" = FALSE ) mr ON TRUE;