Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilDatabaseQueryBuilder.cs =================================================================== diff -u -re7e22e69b16b23c89c063f18444c82aa818dc176 -re1a8e98d60853beefbdb8c84e70f14165680ad7b --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilDatabaseQueryBuilder.cs (.../SoilDatabaseQueryBuilder.cs) (revision e7e22e69b16b23c89c063f18444c82aa818dc176) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilDatabaseQueryBuilder.cs (.../SoilDatabaseQueryBuilder.cs) (revision e1a8e98d60853beefbdb8c84e70f14165680ad7b) @@ -20,6 +20,7 @@ // All rights reserved. using Ringtoets.Piping.IO.SoilProfile; +using Ringtoets.Piping.IO.SoilProfile.Schema; namespace Ringtoets.Piping.IO.Builders { @@ -34,7 +35,7 @@ /// /// The SQL query to execute. /// ME_Name needs to be - /// defined as . + /// defined as . public static string GetStochasticSoilModelOfMechanismQuery() { return string.Format(@"SELECT SP.{8}, SP.{9}, S.{10}, SSM.{11}, SSM.{12} " + @@ -43,19 +44,19 @@ "INNER JOIN {2} SSM USING({5}) " + "INNER JOIN {3} SP USING({6}) " + "WHERE M.{7} = @{7} ORDER BY SSM.{12};", - MechanismDatabaseColumns.TableName, - SegmentDatabaseColumns.TableName, - StochasticSoilModelDatabaseColumns.TableName, - SegmentPointsDatabaseColumns.TableName, - MechanismDatabaseColumns.MechanismId, - StochasticSoilModelDatabaseColumns.StochasticSoilModelId, - SegmentPointsDatabaseColumns.SegmentId, - MechanismDatabaseColumns.MechanismName, - SegmentPointsDatabaseColumns.CoordinateX, - SegmentPointsDatabaseColumns.CoordinateY, - SegmentDatabaseColumns.SegmentName, - StochasticSoilModelDatabaseColumns.StochasticSoilModelName, - StochasticSoilModelDatabaseColumns.StochasticSoilModelId + MechanismTableColumns.TableName, + SegmentTableColumns.TableName, + StochasticSoilModelTableColumns.TableName, + SegmentPointsTableColumns.TableName, + MechanismTableColumns.MechanismId, + StochasticSoilModelTableColumns.StochasticSoilModelId, + SegmentPointsTableColumns.SegmentId, + MechanismTableColumns.MechanismName, + SegmentPointsTableColumns.CoordinateX, + SegmentPointsTableColumns.CoordinateY, + SegmentTableColumns.SegmentName, + StochasticSoilModelTableColumns.StochasticSoilModelName, + StochasticSoilModelTableColumns.StochasticSoilModelId ); } @@ -75,15 +76,15 @@ "INNER JOIN {3} SP USING({6}) " + "WHERE M.{7} = @{7} GROUP BY {5}" + ");", - MechanismDatabaseColumns.TableName, - SegmentDatabaseColumns.TableName, - StochasticSoilModelDatabaseColumns.TableName, - SegmentPointsDatabaseColumns.TableName, - MechanismDatabaseColumns.MechanismId, - StochasticSoilModelDatabaseColumns.StochasticSoilModelId, - SegmentPointsDatabaseColumns.SegmentId, - MechanismDatabaseColumns.MechanismName, - StochasticSoilModelDatabaseColumns.Count + MechanismTableColumns.TableName, + SegmentTableColumns.TableName, + StochasticSoilModelTableColumns.TableName, + SegmentPointsTableColumns.TableName, + MechanismTableColumns.MechanismId, + StochasticSoilModelTableColumns.StochasticSoilModelId, + SegmentPointsTableColumns.SegmentId, + MechanismTableColumns.MechanismName, + StochasticSoilModelTableColumns.Count ); } @@ -95,11 +96,11 @@ public static string GetAllStochasticSoilProfileQuery() { return string.Format("SELECT {1}, {2}, {3}, {4} FROM {0} ORDER BY {1};", - StochasticSoilProfileDatabaseColumns.TableName, - StochasticSoilProfileDatabaseColumns.StochasticSoilModelId, - StochasticSoilProfileDatabaseColumns.Probability, - StochasticSoilProfileDatabaseColumns.SoilProfile1DId, - StochasticSoilProfileDatabaseColumns.SoilProfile2DId + StochasticSoilProfileTableColumns.TableName, + StochasticSoilProfileTableColumns.StochasticSoilModelId, + StochasticSoilProfileTableColumns.Probability, + StochasticSoilProfileTableColumns.SoilProfile1DId, + StochasticSoilProfileTableColumns.SoilProfile2DId ); } @@ -113,24 +114,34 @@ { return string.Format( "SELECT (" + - "SELECT COUNT(DISTINCT sl1D.SP1D_ID) " + - "FROM Mechanism AS m " + - "JOIN Segment AS segment USING(ME_ID) " + - "JOIN StochasticSoilProfile ssp USING(SSM_ID) " + - "JOIN SoilLayer1D sl1D USING(SP1D_ID) " + - "WHERE m.ME_Name = @{0}" + + "SELECT COUNT(DISTINCT sl1D.{5}) " + + "FROM {0} m " + + "JOIN {1} segment USING({2}) " + + "JOIN {3} ssp USING({4}) " + + "JOIN {9} sl1D USING({5}) " + + "WHERE m.{7} = @{7}" + ") + (" + - "SELECT COUNT(DISTINCT sl2D.SP2D_ID) " + - "FROM Mechanism AS m " + - "JOIN Segment AS segment USING(ME_ID) " + - "JOIN StochasticSoilProfile ssp USING(SSM_ID) " + - "JOIN SoilLayer2D sl2D USING(SP2D_ID) " + - "JOIN MechanismPointLocation mpl USING(ME_ID, SP2D_ID) " + - "WHERE m.ME_Name = @{0}" + + "SELECT COUNT(DISTINCT sl2D.{6}) " + + "FROM {0} m " + + "JOIN {1} segment USING({2}) " + + "JOIN {3} ssp USING({4}) " + + "JOIN {10} sl2D USING({6}) " + + "JOIN {8} mpl USING({2}, {6}) " + + "WHERE m.{7} = @{7}" + ") " + - "AS {1};", - MechanismDatabaseColumns.MechanismName, - SoilProfileDatabaseColumns.ProfileCount); + "AS {11};", + MechanismTableColumns.TableName, + SegmentTableColumns.TableName, + MechanismTableColumns.MechanismId, + StochasticSoilProfileTableColumns.TableName, + StochasticSoilProfileTableColumns.StochasticSoilModelId, + StochasticSoilProfileTableColumns.SoilProfile1DId, + StochasticSoilProfileTableColumns.SoilProfile2DId, + MechanismTableColumns.MechanismName, + MechanismPointLocationTableColumns.TableName, + SoilLayer1DTableColumns.TableName, + SoilLayer2DTableColumns.TableName, + SoilProfileTableColumns.ProfileCount); } /// @@ -143,10 +154,26 @@ { return string.Format( "SELECT {2} FROM {0} WHERE {1} = 'VERSION' AND {2} = @{2};", - MetaDataDatabaseColumns.TableName, - MetaDataDatabaseColumns.Key, - MetaDataDatabaseColumns.Value + MetaDataTableColumns.TableName, + MetaDataTableColumns.Key, + MetaDataTableColumns.Value ); } + + /// + /// Returns the SQL query to execute to check if segment names in the DSoil-Model database + /// are unique. + /// + /// The SQL query to execute. + public static string GetSoilModelNamesUniqueQuery() + { + return string.Format( + "SELECT [All].nameCount == [Distinct].nameCount as {0} " + + "FROM(SELECT COUNT({1}) nameCount FROM {2}) AS [All] " + + "JOIN(SELECT COUNT(DISTINCT {1}) nameCount FROM {2}) AS [Distinct];", + StochasticSoilModelTableColumns.AreSegmentsUnique, + StochasticSoilModelTableColumns.StochasticSoilModelName, + StochasticSoilModelTableColumns.TableName); + } } } \ No newline at end of file