select ad.id, ad.Address
from
AddressType at,
AccountAddress ad
where
ad.AccountId = 'e308b781-3c5b-4ecb-89ef-5c1ed4da488e'
and at.Id = ad.AddressTypeId
--and at.Name = 'Собеседования'
and at.Name = 'Места работы'
var select = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "AccountAddress" });
select.addColumn("Id");
select.addColumn("Address");
select.filters.add("filterByAccountWork1",
select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
"Account", this.get("AccountId")));
select.filters.add("filterByAccountWork2",
select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
"AddressType", "Места работы"));
/* вот тут где-то синтакс ошибка
select.filters.add("filterByAccountWork3",
select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
"[AccountAddress:AddressType].Id",
"[AccountAddress.AddressType].Id"));
*/
Нравится
Добрый день
А вам точно нужно декартовое произведение? Это будет долго работать
Чем не подойдет?
select ad.id, ad.Address from AccountAddress ad inner join AddressType at on at.Id = ad.AddressTypeId where ad.AccountId = 'e308b781-3c5b-4ecb-89ef-5c1ed4da488e' --and at.Name = 'Собеседования' and at.Name = 'Места работы'
и в этом случае все гораздо проще, и данных в разы меньше
Артем Гура,
Привет, Да, так лучше намного будет, а как это сделать на esq? :) Запутался, все время синтакс еррор в консоли. Пытался сделать по
https://academy.terrasoft.ru/documents/technic-sdk/7-12/postroenie-pute… но пока не смог :), прошу помощи
QArt,
Что-то вроде этого:
var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "AccountAddress" }); esq.addColumn("Id"); esq.addColumn("Address"); var filterGroup = Ext.create("Terrasoft.FilterGroup"); filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.AND; filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Account", '')); filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "=[AddressType:Id:AddressTypeId].Name", 'Собеседования')); esq.filters.addItem(filterGroup); esq.getEntityCollection(...)