我有下表:
Order(idOrder, address, cap, price, quantity, date, idProduct, idUser, idCountry)
现在,我想要一个具有相同字段的表,其中字段数量是idProduct相同数量的总和。
例如,如果我有以下元组:
1, street1, 123, 4, 6, 2000-12-12, 1, 2, 3
2, street1, 123, 4, 1, 2000-12-12, 2, 2, 2
3, street1, 123, 4, 5, 2000-12-12, 2, 2, 2
4, street1, 123, 4, 1, 2000-12-12, 4, 2, 2
我希望:
1, street1, 123, 4, 6, 2000-12-12, 1, 2, 3
2, street1, 123, 4, 6, 2000-12-12, 2, 2, 2
4, street1, 123, 4, 1, 2000-12-12, 4, 2, 2
我必须使用Criteria
答案 0 :(得分:0)
假设是休眠:您需要使用投影来按标准应用组。
示例:
Criteria crit = session.createCriteria(Order.class);
ProjectionList projList = Projections.projectionList();
projList.add(Projections.groupProperty("quantity"));
crit.setProjection(projList);
有关详细信息,请参阅此example和sum example。
答案 1 :(得分:0)
对新表使用group by运算符...(如果问题特定于DB ...)
INSERT INTO NEW_TABLE (ID(may be auto generated), Select address, cap, price, sum(quantity), date, idProduct, idUser, idCountry from old_table group by address, cap, price, date, idProduct, idUser, idCountry )