Могу ли я предложить разместить запрос в левом соединении в представлении базы данных - таким образом код может быть намного чище и проще в обслуживании.
Кроме того, проверьте столбцы, которые вы чаще всего используете ... это может быть кандидатом для индексации, чтобы при выполнении запроса он работал быстрее.
Вы также можете проверить типы данных вашего столбца ... Я вижу, что у вас есть этот тип кода:
(CASE
КОГДА b.tray_type НЕДЕЙСТВИТЕЛЕН
ТОГДА 1
ELSE 0
КОНЕЦ) flag2
Если у вас есть возможность изменить дизайн ваших таблиц (например, bTray_Type на bit или использовать вычисляемый столбец для определения флага), он будет работать быстрее, поскольку вам не нужно использовать операторы Case для определения флага , Вы можете просто добавить его в качестве другого столбца для вашего запроса.
Надеюсь, это поможет! :)
Ann