sql >> Base de Datos >  >> RDS >> Mysql

mysql:busca entre fechas donde aparecen todas las fechas

Actualización:mi respuesta original era idéntica a la de Quassnoi pero 1 minuto demasiado tarde, así que decidí eliminarla y hacer algo diferente en su lugar. Esta consulta no asume que (id, fecha) es único. Si hay más de una entrada, selecciona la más barata. Además, también suma el costo total y lo devuelve, lo que también podría ser útil.

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