Во-первых, давайте попробуем добавить несколько лучших практик. Укажите все ваши столбцы с соответствующим псевдонимом таблицы. Простое выполнение некоторых из них является непоследовательным, а непоследовательный стиль труден для чтения и подвержен ошибкам.
Далее, вы (надеюсь) не поняли фактический запрос. Общие названия, такие как «tableA», мешают пониманию.
Далее - ваше первое выражение в регистре кажется очень подозрительным. У вас одна ветка возвращает tb.id, а другие возвращают то, что выглядит как дата (или datetime). К сожалению, вы можете использовать int для datetime. Может не иметь никакого смысла, и это не приведет к ошибке. Итак, имеет ли это смысл?
Далее - вы допустили общую ошибку с границами даты и времени. В зависимости от ваших данных вы никогда не узнаете этого. Но нет никаких оснований ожидать этого, и есть все основания написать свою логику, чтобы избежать какой-либо возможности. Тибор очень подробно обсуждает здесь . Укороченная версия - ваша верхняя граница всегда должна быть эксклюзивной, чтобы поддерживать все возможные значения времени для вашего типа данных. 23:59:59 будет игнорировать любые значения времени с ненулевыми миллисекундами. И используйте буквальный формат, который не зависит от языка или настроек соединения.
Далее вы добавляете путаницу. Вы назвали свои столбцы в объявлении cte, но в вашем коде также есть псевдонимы для некоторых (но не для всех - смотрите, см. Комментарий о согласованности) столбцов, которые значительно отличаются от фактического имени столбца для cte. 2-й столбец для cte - «enddate», запрос привязки использует псевдоним «ForecastDueDate»
. Далее у вас есть следующее: tb.statusDte = 5. Имя подразумевает дату; буквальное подразумевает что-то другое. У вас есть другие столбцы, которые заканчиваются на «Dte», которые, очевидно, даты, но не этот? Опасность, опасность!
Далее вы обращаетесь к столбцам «a.closeClass» и «a.statusDate». Нет таблицы или псевдонима с именем "a".
Наконец, у вас есть:
WHERE enddate BETWEEN enddate AND '12/31/2020 11:59:59 PM'
Подумайте о том, что вы написали. Не всегда ли enddate между enddate и 31 декабря 2010 (если enddate < = это значение)? Я думаю, что это источник вашей проблемы. Вы не вычисляете и не настраиваете что-либо из якоря, поэтому повторяемая часть просто продолжает выбирать, выбирать и выбирать. Нет логики, чтобы закончить рекурсию.
Следующий вопрос, очевидно, «сейчас, чтобы это исправить». Это невозможно сказать, не зная вашей схемы, что она представляет и вашей цели. Использование рекурсии здесь не очевидно.
Я предпочитаю редактировать XML-файлы, но можно использовать:
Для записи это сообщение от одного из разработчиков кота описывает проблемы с администраторским веб-приложением очень хорошо:
http://www.nabble.com/Tomcat-Administrator-tf3415576.html#a9519933
] Пожалуйста, проверьте MuleSoft Tcat Server для [] управления конфигурацией[] на нескольких серверах Tomcat.[
] []Раскрытие: Я работаю в MuleSoft, и буду рад ответить на любые вопросы по Tcat Server.[
]