Вы были близки. Я думаю, что это будет работать для вас. Первая дата возвращается на 5 месяцев назад и добавляет день, вторая - к последнему дню предыдущего месяца.
CASE WHEN {trandate} BETWEEN
LAST_DAY(ADD_MONTHS({today},-5))+1 AND
LAST_DAY(ADD_MONTHS({today},-1)) THEN 1 ELSE 0 END
Ключ, мы не порождаем новых потоков. Во время целого курса рабочего процесса существуют 1 или 0 активных потоков, используемых от ThreadPool. (Исключение, вплоть до первого'!', код работает на пользовательском потоке, который сделал Асинхронное. Выполненный.) "позволяют!" отпускает потока, в то время как Асинхронная операция в море и затем поднимает поток с ThreadPool, когда операция возвращается. (Производительность) преимуществом является меньше давления против ThreadPool (и конечно главным пользовательским преимуществом является простая модель программирования - миллион раз лучше, чем все, что BeginFoo/EndFoo/callback наполняют Вас, иначе пишут).
Я писал ответ, но Brian победил меня к нему. Я полностью соглашаюсь с ним.
Я хотел бы добавить, что, если Вы хотите параллелизировать синхронный код, правильный инструмент является PLINQ, не асинхронными рабочими процессами, как Don Syme объясняет.