40766b24-ff74-431b-b387-6c221ede77cf true p3121-sql-02.sdt.local jazz prd UNC 20180206.1 true <ProgramFilesX64>\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\Diagnostics\Newtonsoft.Json.dll Amazon.Lambda.S3Events AWSSDK.Core AWSSDK.S3 Amazon Amazon.Auth.AccessControlPolicy Amazon.Auth.AccessControlPolicy.ActionIdentifiers Amazon.Internal Amazon.Lambda.S3Events Amazon.MissingTypes Amazon.Runtime Amazon.Runtime.CredentialManagement Amazon.Runtime.CredentialManagement.Internal Amazon.Runtime.EventStreams Amazon.Runtime.EventStreams.Internal Amazon.Runtime.Internal Amazon.Runtime.Internal.Auth Amazon.Runtime.Internal.Settings Amazon.Runtime.Internal.Transform Amazon.Runtime.Internal.Util Amazon.Runtime.SharedInterfaces Amazon.Runtime.SharedInterfaces.Internal Amazon.S3 Amazon.S3.Encryption Amazon.S3.Encryption.Internal Amazon.S3.Internal Amazon.S3.IO Amazon.S3.Model Amazon.S3.Model.Internal.MarshallTransformations Amazon.S3.Transfer Amazon.S3.Util Amazon.Util Amazon.Util.Internal Amazon.Util.Internal.PlatformServices Newtonsoft.Json Newtonsoft.Json.Converters Newtonsoft.Json.Linq Newtonsoft.Json.Schema Newtonsoft.Json.Serialization System System.Diagnostics System.Diagnostics.Tracing System.IO.Compression ThirdParty.BouncyCastle.Asn1 ThirdParty.BouncyCastle.Asn1.Utilities ThirdParty.BouncyCastle.Math ThirdParty.BouncyCastle.OpenSsl ThirdParty.BouncyCastle.Utilities.IO.Pem ThirdParty.Ionic.Zlib ThirdParty.Json.LitJson ThirdParty.MD5 var timeClasses = new[] { 1, 4 }; var departments = new[] { 115355, 115372, 115373, 45950, 45953, 45955, 45959, 45960, 45967, 45968, 45973, 45974, 45975, 45976, 45977, 45979, 45980, 45982, 45985, 45998, 46030, 59278, 74820 }; var payperiods = new[] { 3136, 3135, 3134, 3133, 3132, 3131 }; var hours = from fact in FactPayrollSampledPayPeriods join payperiod in DimPayPeriods on fact.PayPeriodID equals payperiod.PayPeriodID join paycode in DimPayCodeGroups on fact.PayCodeGroupID equals paycode.PayCodeGroupID join prodclass in DimProductiveClasses on paycode.ProductiveClassID equals prodclass.ProductiveClassID join department in DimDepartments on fact.DepartmentID equals department.DepartmentID where prodclass.Name == "Productive" && timeClasses.Contains(fact.TimeClassID) && departments.Contains(fact.DepartmentID) && payperiods.Contains(fact.PayPeriodID) group new { fact, department, payperiod } by new { department.DepartmentID, payperiod.PayPeriodID, fact.TimeClassID } into g select new { g.Key.DepartmentID, g.Key.PayPeriodID, g.Key.TimeClassID, Units = g.Sum(f => f.fact.Hours), UnitType = "hours" }; var dollars = from fact in FactPayrollSampledPayPeriods join payperiod in DimPayPeriods on fact.PayPeriodID equals payperiod.PayPeriodID join paycode in DimPayCodeGroups on fact.PayCodeGroupID equals paycode.PayCodeGroupID join department in DimDepartments on fact.DepartmentID equals department.DepartmentID where timeClasses.Contains(fact.TimeClassID) && departments.Contains(fact.DepartmentID) && payperiods.Contains(fact.PayPeriodID) group new { fact, department, payperiod } by new { department.DepartmentID, payperiod.PayPeriodID, fact.TimeClassID } into g select new { g.Key.DepartmentID, g.Key.PayPeriodID, g.Key.TimeClassID, Units = g.Sum(f => f.fact.Dollars), UnitType = "dollars" }; var uos = from fact in ViewPrimaryStatisticsStaffingByPayPeriod join payperiod in DimPayPeriods on fact.PayPeriodID equals payperiod.PayPeriodID join department in DimDepartments on fact.DepartmentID equals department.DepartmentID where timeClasses.Contains(fact.TimeClassID) && departments.Contains(fact.DepartmentID) && payperiods.Contains(fact.PayPeriodID) group new { fact, department, payperiod } by new { department.DepartmentID, payperiod.PayPeriodID, fact.TimeClassID } into g select new { g.Key.DepartmentID, g.Key.PayPeriodID, g.Key.TimeClassID, Units = g.Sum(f => f.fact.Units) ?? 0.0m, UnitType = "uos" }; hours.Concat(dollars).Concat(uos) //.Where(x => departments.Contains(x.DepartmentID) && payperiods.Contains(x.PayPeriodID)) .Join(DimDepartments, m => m.DepartmentID, d => d.DepartmentID, (m, d) => new { m.DepartmentID, m.PayPeriodID, m.TimeClassID, m.Units, m.UnitType, Department = d.Name }) .Join(DimPayPeriods, m => m.PayPeriodID, p => p.PayPeriodID, (m, p) => new { m.DepartmentID, m.PayPeriodID, m.TimeClassID, m.Units, m.UnitType, m.Department, p.PeriodStartCalendarDate, p.PeriodEndCalendarDate }) .Join(DimTimeClasses, m => m.TimeClassID, t => t.TimeClassID, (m, t) => new { m.DepartmentID, m.PayPeriodID, m.TimeClassID, m.Units, m.UnitType, m.Department, m.PeriodStartCalendarDate, m.PeriodEndCalendarDate, t.TimeClassCode, TimeClass = t.Name, t.SortOrder }) .OrderBy(x => x.DepartmentID) .ThenBy(x => x.PayPeriodID) .ThenBy(x => x.UnitType) .ThenBy(x => x.SortOrder) .Dump();