Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhcalculation/BedQualityD50KmValueFinder.java @ 9091:e07a2b4606c1
Fixed km order in d50 query
author | mschaefer |
---|---|
date | Fri, 25 May 2018 11:49:31 +0200 |
parents | b5dbcbaed42b |
children | f812880963a9 |
comparison
equal
deleted
inserted
replaced
9090:8c15c3c23ecc | 9091:e07a2b4606c1 |
---|---|
55 * | 55 * |
56 * If PostgreSQL would support a median aggregate function like Oracle does, the aggregation could be placed into this | 56 * If PostgreSQL would support a median aggregate function like Oracle does, the aggregation could be placed into this |
57 * query. | 57 * query. |
58 */ | 58 */ |
59 private static final String SQL_BED_D50_SUBLAYER_MEASUREMENT = // | 59 private static final String SQL_BED_D50_SUBLAYER_MEASUREMENT = // |
60 "SELECT s.km, t.datum, p.tiefevon, p.tiefebis, a.d50" // | 60 "SELECT s.km, t.datum, p.tiefevon, p.tiefebis, a.d50" |
61 + " FROM sohltest t INNER JOIN station s ON t.stationid = s.stationid" // | 61 + " FROM sohltest t INNER JOIN station s ON t.stationid = s.stationid" |
62 + " INNER JOIN gewaesser g ON s.gewaesserid = g.gewaesserid" // | 62 + " INNER JOIN gewaesser g ON s.gewaesserid = g.gewaesserid" |
63 + " INNER JOIN sohlprobe p ON t.sohltestid = p.sohltestid" // | 63 + " INNER JOIN sohlprobe p ON t.sohltestid = p.sohltestid" |
64 + " INNER JOIN siebanalyse a ON p.sohlprobeid = a.sohlprobeid" // | 64 + " INNER JOIN siebanalyse a ON p.sohlprobeid = a.sohlprobeid" |
65 + " WHERE (g.name = :name) AND (s.km BETWEEN :fromkm - 0.0001 AND :tokm + 0.0001)" // | 65 + " WHERE (g.name = :name) AND (s.km BETWEEN :fromkm - 0.0001 AND :tokm + 0.0001)" |
66 + " AND (p.tiefevon > 0.0) AND (p.tiefebis <= 0.5)" // | 66 + " AND (p.tiefevon > 0.0) AND (p.tiefebis <= 0.5)" |
67 + " AND (t.datum BETWEEN :fromdate AND :todate)" // | 67 + " AND (t.datum BETWEEN :fromdate AND :todate)" |
68 + " ORDER BY t.km ASC, a.d50 ASC"; | 68 + " ORDER BY s.km ASC, a.d50 ASC"; |
69 | 69 |
70 private Calculation problems; | 70 private Calculation problems; |
71 | 71 |
72 /** | 72 /** |
73 * Real linear interpolator for kms and d50 values (m) | 73 * Real linear interpolator for kms and d50 values (m) |
101 final Date startTime = cal.getTime(); | 101 final Date startTime = cal.getTime(); |
102 | 102 |
103 cal.set(soundingYear + validYears, 11, 31); | 103 cal.set(soundingYear + validYears, 11, 31); |
104 final Date endTime = cal.getTime(); | 104 final Date endTime = cal.getTime(); |
105 | 105 |
106 log.debug(String.format("loadValues km %.3f - %.3f %tF - %tF", kmRange.getMinimumDouble(), kmRange.getMaximumDouble(), startTime, endTime)); | 106 final String seddbRiver = river.nameForSeddb(); |
107 log.debug(String.format("loadValues '%s' km %.3f - %.3f %tF - %tF", seddbRiver, kmRange.getMinimumDouble(), kmRange.getMaximumDouble(), startTime, | |
108 endTime)); | |
107 final Session session = SedDBSessionHolder.HOLDER.get(); | 109 final Session session = SedDBSessionHolder.HOLDER.get(); |
108 final SQLQuery sqlQuery = session.createSQLQuery(SQL_BED_D50_SUBLAYER_MEASUREMENT).addScalar("km", StandardBasicTypes.DOUBLE) | 110 final SQLQuery sqlQuery = session.createSQLQuery(SQL_BED_D50_SUBLAYER_MEASUREMENT).addScalar("km", StandardBasicTypes.DOUBLE) |
109 .addScalar("datum", StandardBasicTypes.DATE).addScalar("tiefevon", StandardBasicTypes.DOUBLE).addScalar("tiefebis", StandardBasicTypes.DOUBLE) | 111 .addScalar("datum", StandardBasicTypes.DATE).addScalar("tiefevon", StandardBasicTypes.DOUBLE).addScalar("tiefebis", StandardBasicTypes.DOUBLE) |
110 .addScalar("d50", StandardBasicTypes.DOUBLE); | 112 .addScalar("d50", StandardBasicTypes.DOUBLE); |
111 final String seddbRiver = river.nameForSeddb(); | |
112 sqlQuery.setString("name", seddbRiver); | 113 sqlQuery.setString("name", seddbRiver); |
113 sqlQuery.setDouble("fromkm", kmRange.getMinimumDouble()); | 114 sqlQuery.setDouble("fromkm", kmRange.getMinimumDouble()); |
114 sqlQuery.setDouble("tokm", kmRange.getMaximumDouble()); | 115 sqlQuery.setDouble("tokm", kmRange.getMaximumDouble()); |
115 sqlQuery.setDate("fromdate", startTime); | 116 sqlQuery.setDate("fromdate", startTime); |
116 sqlQuery.setDate("todate", endTime); | 117 sqlQuery.setDate("todate", endTime); |