105 lines
6.2 KiB
C#
105 lines
6.2 KiB
C#
<Query Kind="Statements">
|
|
<Connection>
|
|
<ID>40766b24-ff74-431b-b387-6c221ede77cf</ID>
|
|
<Persist>true</Persist>
|
|
<Server>p3121-sql-02.sdt.local</Server>
|
|
<Database>jazz prd UNC 20180206.1</Database>
|
|
<ShowServer>true</ShowServer>
|
|
</Connection>
|
|
<Reference><ProgramFilesX64>\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\Diagnostics\Newtonsoft.Json.dll</Reference>
|
|
<NuGetReference>Amazon.Lambda.S3Events</NuGetReference>
|
|
<NuGetReference>AWSSDK.Core</NuGetReference>
|
|
<NuGetReference>AWSSDK.S3</NuGetReference>
|
|
<Namespace>Amazon</Namespace>
|
|
<Namespace>Amazon.Auth.AccessControlPolicy</Namespace>
|
|
<Namespace>Amazon.Auth.AccessControlPolicy.ActionIdentifiers</Namespace>
|
|
<Namespace>Amazon.Internal</Namespace>
|
|
<Namespace>Amazon.Lambda.S3Events</Namespace>
|
|
<Namespace>Amazon.MissingTypes</Namespace>
|
|
<Namespace>Amazon.Runtime</Namespace>
|
|
<Namespace>Amazon.Runtime.CredentialManagement</Namespace>
|
|
<Namespace>Amazon.Runtime.CredentialManagement.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.EventStreams</Namespace>
|
|
<Namespace>Amazon.Runtime.EventStreams.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Auth</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Settings</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Transform</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Util</Namespace>
|
|
<Namespace>Amazon.Runtime.SharedInterfaces</Namespace>
|
|
<Namespace>Amazon.Runtime.SharedInterfaces.Internal</Namespace>
|
|
<Namespace>Amazon.S3</Namespace>
|
|
<Namespace>Amazon.S3.Encryption</Namespace>
|
|
<Namespace>Amazon.S3.Encryption.Internal</Namespace>
|
|
<Namespace>Amazon.S3.Internal</Namespace>
|
|
<Namespace>Amazon.S3.IO</Namespace>
|
|
<Namespace>Amazon.S3.Model</Namespace>
|
|
<Namespace>Amazon.S3.Model.Internal.MarshallTransformations</Namespace>
|
|
<Namespace>Amazon.S3.Transfer</Namespace>
|
|
<Namespace>Amazon.S3.Util</Namespace>
|
|
<Namespace>Amazon.Util</Namespace>
|
|
<Namespace>Amazon.Util.Internal</Namespace>
|
|
<Namespace>Amazon.Util.Internal.PlatformServices</Namespace>
|
|
<Namespace>Newtonsoft.Json</Namespace>
|
|
<Namespace>Newtonsoft.Json.Converters</Namespace>
|
|
<Namespace>Newtonsoft.Json.Linq</Namespace>
|
|
<Namespace>Newtonsoft.Json.Schema</Namespace>
|
|
<Namespace>Newtonsoft.Json.Serialization</Namespace>
|
|
<Namespace>System</Namespace>
|
|
<Namespace>System.Diagnostics</Namespace>
|
|
<Namespace>System.Diagnostics.Tracing</Namespace>
|
|
<Namespace>System.IO.Compression</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Asn1</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Asn1.Utilities</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Math</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.OpenSsl</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Utilities.IO.Pem</Namespace>
|
|
<Namespace>ThirdParty.Ionic.Zlib</Namespace>
|
|
<Namespace>ThirdParty.Json.LitJson</Namespace>
|
|
<Namespace>ThirdParty.MD5</Namespace>
|
|
</Query>
|
|
|
|
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(); |