0

次の表があります。

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

基準を使用する必要があります

4

2 に答える 2

0

休止状態を仮定すると、プロジェクションを使用してグループ基準を適用する必要があります。

例:

    Criteria crit = session.createCriteria(Order.class);
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.groupProperty("quantity"));

    crit.setProjection(projList);

詳細については、この合計の例を参照してください。

于 2012-11-29T16:03:48.620 に答える
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 )
于 2012-11-29T16:06:17.200 に答える