Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql - pesquisa entre datas onde todas as datas aparecem


Atualização:minha resposta original era idêntica à de Quassnoi, mas 1 minuto atrasada, então decidi excluí-la e fazer algo diferente. Esta consulta não pressupõe que (id, date) seja exclusivo. Se houver mais de uma entrada, ele seleciona a mais barata. Além disso, também soma o custo total e retorna isso também, o que também pode 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