Update:mijn oorspronkelijke antwoord was identiek aan dat van Quassnoi, maar 1 minuut te laat, dus besloot ik het te verwijderen en in plaats daarvan iets anders te doen. Deze zoekopdracht gaat er niet van uit dat (id, datum) uniek is. Als er meer dan één item is, selecteert het de goedkoopste. Het telt ook de totale kosten op en geeft dat ook terug wat ook nuttig kan zijn.
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