更新:私の元の答えはQuassnoiの答えと同じでしたが、1分遅すぎたので、それを削除して、代わりに別のことをすることにしました。このクエリは、(id、date)が一意であるとは想定していません。複数のエントリがある場合は、最も安いものを選択します。また、合計コストも合計され、それも返されます。これも役立つ可能性があります。
SELECT id, SUM(price) FROM (
SELECT id, date, MIN(price) AS price
FROM Table1
GROUP BY id, date) AS T1
WHERE `date` BETWEEN '2010-08-05' AND '2010-08-07'
GROUP BY id
HAVING COUNT(*) = DATEDIFF('2010-08-07','2010-08-05') + 1