Cập nhật:câu trả lời ban đầu của tôi giống với câu trả lời của Quassnoi nhưng quá muộn 1 phút, vì vậy tôi quyết định xóa nó đi và thay vào đó làm điều gì đó khác. Truy vấn này không giả định rằng (id, ngày) là duy nhất. Nếu có nhiều hơn một mục nhập, nó sẽ chọn giá rẻ nhất. Ngoài ra, nó cũng tính tổng chi phí và trả lại số tiền đó cũng có thể hữu ích.
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