Aktualizacja:moja pierwotna odpowiedź była identyczna z odpowiedzią Quassnoi, ale o minutę spóźniona, więc postanowiłem ją usunąć i zamiast tego zrobić coś innego. To zapytanie nie zakłada, że (id, data) jest unikatowe. Jeśli jest więcej niż jeden wpis, wybiera najtańszy. Ponadto sumuje również całkowity koszt i zwraca to, co również może być przydatne.
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