Два поля - `date` и `estimation`. Второе поле - enum('date', 'month', 'quarter', 'year'). В первое поле вписывается точная дата или последняя дата соответствующего интервала. Тогда сортировка ORDER BY (`date`, `estimation`) выдаст в оптимальном порядке. Ну и для красоты останется сделать преобразование даты в соответствующий интервал.