Files
linqpad/New StarterSet Cube Parameters.linq

79 lines
4.2 KiB
C#

<Query Kind="Statements">
<Connection>
<ID>463c2997-8a6a-4688-9575-6549e5215f7b</ID>
<Persist>true</Persist>
<Server>D0011-SQL-01.sdt.local</Server>
<Database>jazz tst StrataSphere 20191104.1</Database>
<ShowServer>true</ShowServer>
</Connection>
<Reference>&lt;ProgramFilesX64&gt;\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 insert = (from rcrp in REDSCubeReportParameters
join sd in ScoreDimensions on rcrp.Name equals sd.FriendlyName
join sh in ScoreHierarchies on sd.DefaultHierarchyGUID equals sh.HierarchyGUID
select new {rcrp.Name, rcrp.DimensionID, rcrp.AttributeID, sd.DimensionGUID, HierarchyGUID = sd.DefaultHierarchyGUID, AttributeGUID = sd.DefaultLookupKeyGUID, sh.HierarchyID})
.Distinct()
.ToList()
.Aggregate(@"INSERT INTO stratasphere.Definition
( Id, Name, Description, DateCreated, DateLastModified, AttributeGuid, DimensionGuid, AttributeId, DimensionId, HierarchyGuid, HierarchyId )
SELECT Id, Name, Description, DateCreated, DateLastModified, AttributeGUID, DimensionGuid, AttributeID, DimensionId, HierarchyGuid, HierarchyId
FROM (
VALUES
", (x, y) => $@"{x}(NEWID(),'{y.Name}','{y.Name}',SYSDATETIME(),SYSDATETIME(),'{y.AttributeGUID}','{y.DimensionGUID}','{y.AttributeID}','{y.DimensionID}','{y.HierarchyGUID}','{y.HierarchyID}'),
");
insert += @") AS x (Id, Name, Description, DateCreated, DateLastModified, AttributeGUID, DimensionGuid, AttributeID, DimensionId, HierarchyGuid, HierarchyId)
WHERE NOT EXISTS (SELECT 1 FROM stratasphere.Definition d WHERE d.Name = x.Name
OR (d.DimensionId = x.DimensionId AND d.AttributeId = x.AttributeID)
OR (d.DimensionGUID = x.DimensionGUID AND d.AttributeGUID = x.AttributeGUID))";
insert.Dump();