Показать сообщение отдельно
Старый 17.11.2023, 09:26   #1  
Aleksey2020 is offline
Aleksey2020
Участник
 
14 / 10 (1) +
Регистрация: 25.02.2020
поле "невидимо" в расширенном диапазоне запроса
Добрый день. Создаю форму, основная таблица связана с таблицей истории действий. Мне надо отсеить данные, которые содержатся в истории одного типа и позже не появилась история другого типа(открыли, закрыли туда-сюда)
Пишу exists join History, notexists join History2 но когда составляю условие
То ругается поле (StartDate) невидимое.
Как переделать запрос формы?
ExistsJoin был переписан на join с group by по полям ( потому что вроде логично не видеть поля из условия exists в where), но ошибка таже

qbds = this.query().dataSourceTable(tableNum(ManagerLocation));
qbds.clearDynalinks();
historyExistsDS = qbds.addDataSource(tableNum(ManagerLocationHistory));
historyExistsDS.joinMode(JoinMode::ExistsJoin);
historyExistsDS.relations(true);
hrange = SysQuery::findOrCreateRange(historyExistsDS, fieldNum(ManagerLocationHistory, StartDate));
hrange.value(queryRange(dateNull(), beginDate));
hrange = SysQuery::findOrCreateRange(historyExistsDS, fieldNum(ManagerLocationHistory, TypeAction));
hrange.value(queryValue(1));

historyNotExistsDS = historyExistsDS.addDataSource(tableNum(ManagerLocationHistory));
historyNotExistsDS.joinMode(JoinMode::NoExistsJoin);
historyNotExistsDS.relations(true);
hrange = SysQuery::findOrCreateRange(historyNotExistsDS, fieldNum(ManagerLocationHistory, TypeAction));
hrange.value(queryValue(0));
hrange =​ SysQuery::findOrCreateRange(historyNotExistsDS, fieldNum(ManagerLocationHistory, StartDate));​
hrange.value('('+historyNotExistsDS.name()+ '.' + fieldStr(ManagerLocationHistory, StartDate) + ' >=​ ' +
​ ​ ​ ​ ​ ​ ​ historyExistsDS.name() + '.' + fieldStr(ManagerLocationHistory, StartDate) + ')'); -- ругается на вторую startdate из exists join