Вполне. Если у тебя всреднем 1 запись на работника в день, то ты сначала 1700*178 записей преобразуешь к нужному виду даты, а потом сверяешь со 178 записей во вьюхе, которые, кстати, тоже получаются довольно гиморно - преобразование даты плюс distinct.Это нормально.
Т.е. даже если ты по совету Oscar'а создашь две временные таблицы, то сервер будет выполнять 53млн+ сравнений. При этом выиграв на скорости выборки, ты проиграешь на скорости заполнения этих таблиц. Может быть выигрыш в скорости выборки будет больше проигрыша на заполнении этих таблиц за счёт использования индексов, но вряд ли общее время существенно сократиться.
И отвлечённый вопрос: какой несчастный будет обречён просматривать 300 с лишним тысяч записей? Которые кстати с сервера ты не быстро выфетчишь.