Revision 45166 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/CountOperation.java
CountOperation.java | ||
---|---|---|
109 | 109 |
subselect.where().and(expbuilder.toValue(baseFilter)); |
110 | 110 |
} |
111 | 111 |
|
112 |
FeatureQueryOrder order = query == null ? null : query.getOrder(); |
|
113 |
if (order != null) { |
|
114 |
for (FeatureQueryOrder.FeatureQueryOrderMember member : order.members()) { |
|
115 |
if (member.hasEvaluator()) { |
|
116 |
String sqlorder = member.getEvaluator().getSQL(); |
|
117 |
if (!StringUtils.isEmpty(sqlorder)) { |
|
118 |
subselect.order_by().custom(sqlorder); |
|
119 |
} |
|
120 |
} else { |
|
121 |
subselect.order_by() |
|
122 |
.column(member.getAttributeName()) |
|
123 |
.ascending(member.getAscending()); |
|
124 |
} |
|
125 |
} |
|
126 |
} |
|
127 | 112 |
|
128 | 113 |
List<String> groupbyColumns = query == null ? null : query.getGroupByColumns(); |
129 | 114 |
if (groupbyColumns != null && !groupbyColumns.isEmpty()) { |
... | ... | |
139 | 124 |
try { |
140 | 125 |
try { |
141 | 126 |
Code groupByColumnCode = ExpressionUtils.compile(columnName); |
142 |
if (groupByColumnCode.code() == Code.CALLABLE) { |
|
143 |
Code.Callable callable = (Code.Callable) groupByColumnCode; |
|
144 |
if (callable.name().equalsIgnoreCase(FUNCTION_LET)) { |
|
145 |
Code exp = callable.parameters().get(1); |
|
146 |
Code name = callable.parameters().get(0); |
|
147 |
subselect.column().value(exp.toValue()) |
|
148 |
.as((String) ((Code.Constant) name).value()); |
|
149 |
// nombre que se pone en la parte del groupby debe de ser el nombre de la var del set |
|
150 |
groupByColumnCode = exp; |
|
151 |
} |
|
152 |
} |
|
127 |
// if (groupByColumnCode.code() == Code.CALLABLE) {
|
|
128 |
// Code.Callable callable = (Code.Callable) groupByColumnCode;
|
|
129 |
// if (callable.name().equalsIgnoreCase(FUNCTION_LET)) {
|
|
130 |
// Code exp = callable.parameters().get(1);
|
|
131 |
// Code name = callable.parameters().get(0);
|
|
132 |
// subselect.column().value(exp.toValue())
|
|
133 |
// .as((String) ((Code.Constant) name).value());
|
|
134 |
// // nombre que se pone en la parte del groupby debe de ser el nombre de la var del set
|
|
135 |
// groupByColumnCode = exp;
|
|
136 |
// }
|
|
137 |
// }
|
|
153 | 138 |
subselect.group_by(groupByColumnCode.toValue()); |
154 | 139 |
} catch (Exception ex) { |
155 | 140 |
throw new RuntimeException("Not able to create column by expression in groupby query", ex); |
Also available in: Unified diff