Как должна выполнятся конструкция вида
X++:
while select tmpTable1
group by GroupId
exists join tmpTable2
where
tmpTable2.Id == tmpTable1.Id
?
По аналогии с постоянными таблицами можно предположить, что сначала из таблицы tmpTable1 выберутся строкии, Id которых соответствуют строкам из таблицы tmpTable2. И затем отобранные строки сгруппируются по полю GroupId.
На практике же оказывается что group by отрабатывает первым. Причём значение поля id не обнуляется, а становится равным значению из первой строки группы (первой по очерёдности вставки). И вот уже с этими Id продолжает работать exists join. Естественно результат такой выборки мало предсказуем.
Данный баг уже был описан ранее? Или это фича такая?