comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/MeasurementFactory.java @ 3310:8af1111af180

SQ relation: More fixes. flys-artifacts/trunk@4999 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 13 Jul 2012 15:41:56 +0000
parents 5ccd51ca11ce
children 816ceb0418b9
comparison
equal deleted inserted replaced
3309:fd3243d892a9 3310:8af1111af180
43 ("SELECT " + 43 ("SELECT " +
44 "m.TSAND AS TSAND," + 44 "m.TSAND AS TSAND," +
45 "m.TSCHWEB AS TSCHWEB," + 45 "m.TSCHWEB AS TSCHWEB," +
46 "m.CSCHWEB AS CSCHWEB," + 46 "m.CSCHWEB AS CSCHWEB," +
47 "m.Q AS Q," + 47 "m.Q AS Q," +
48 "%GSIEBSATZ%" + 48 "%GSIEBSATZ%," +
49 "%SSIEBUNG%" + 49 "%SSIEBUNG% " +
50 "FROM messung m " + 50 "FROM messung m " +
51 "JOIN station s ON m.stationid = s.stationid " + 51 "JOIN station s ON m.stationid = s.stationid " +
52 "JOIN gewaesser g ON s.gewaesserid = g.gewaesserid " + 52 "JOIN gewaesser g ON s.gewaesserid = g.gewaesserid " +
53 "LEFT JOIN GSIEBSATZ gs ON m.gsiebsatzid = gs.gewaesserid " + 53 "LEFT JOIN GSIEBSATZ gs ON m.gsiebsatzid = gs.gsiebsatzid " +
54 "LEFT JOIN SSIEBUNG ss ON gs.gsiebsatzid = ss.gewaesserid " + 54 "LEFT JOIN SSIEBUNG ss ON gs.gsiebsatzid = ss.gsiebsatzid " +
55 "WHERE " + 55 "WHERE " +
56 "g.name = :river_name AND " + 56 "g.name = :river_name AND " +
57 "s.km BETWEEN :location - 0.001 AND :location + 0.001 AND " + 57 "s.km BETWEEN :location - 0.001 AND :location + 0.001 AND " +
58 "m.datum BETWEEN :from AND :to AND " + 58 "m.datum BETWEEN :from AND :to AND " +
59 "m.Q IS NOT NULL") 59 "m.Q IS NOT NULL")
60 .replace("%GSIEBSATZ%", projection("gs", GSIEBSATZ)) 60 .replace("%GSIEBSATZ%", projection("gs", GSIEBSATZ))
61 .replace("%SSIEBUNG%", projection("ss", SSIEBUNG)); 61 .replace("%SSIEBUNG%", projection("ss", SSIEBUNG));
62 62
63 private static final String projection( 63 private static final String projection(
64 String prefix, 64 String prefix,
65 String [] columnNames 65 String [] columnNames
66 ) { 66 ) {
67 StringBuilder sb = new StringBuilder(); 67 StringBuilder sb = new StringBuilder();
68 for (String columnName: columnNames) { 68 for (int i = 0; i < columnNames.length; ++i) {
69 if (i > 0) {
70 sb.append(',');
71 }
69 sb.append(prefix) 72 sb.append(prefix)
70 .append('.') 73 .append('.')
71 .append(columnName) 74 .append(columnNames[i])
72 .append(" AS ") 75 .append(" AS ")
73 .append(columnName) 76 .append(columnNames[i]);
74 .append(',');
75 } 77 }
76 return sb.toString(); 78 return sb.toString();
77 } 79 }
78 80
79 public static final class MeasurementResultTransformer 81 public static final class MeasurementResultTransformer

http://dive4elements.wald.intevation.org