GROUP BY
を使用する必要があります
希望する結果を得るには:
SELECT
order_id,
part_id,
SUM(cost) AS total
FROM orders
WHERE order_date BETWEEN xxx AND yyy
GROUP BY order_id, part_id
これにより、結果がグループ化されます。 order_id
を想定しているので、注意してください およびpart_id
複合PK、SUM(cost)
上記ではおそらく= cost
になります (一意であることが保証されている2つのフィールドの組み合わせによるグループ化のため。以下の相関サブクエリは、この制限を克服します。)
フェッチされた非集計行は、GROUP BY
で指定する必要があります 行。
詳細については、GROUP BY
に関するチュートリアルをご覧ください。 ここ:
編集: 列を集計と非集計の両方として使用する場合、またはグループを分離する必要がある場合は、サブクエリを次のように使用する必要があります。
SELECT
or1.order_id,
or1.cost,
or1.part_id,
(
SELECT SUM(cost)
FROM orders or2
WHERE or1.order_id = or2.order_id
GROUP BY or2.order_id
) AS total
FROM orders or1
WHERE or1.order_date BETWEEN xxx AND yyy