RUS  ENG 

Аггрегатные подзапросы к другим полям при присвоении

Страницы: 1
RSS
Аггрегатные подзапросы к другим полям при присвоении
 
Здравствуйте.

Есть ли возможность выполнить запрос на присвоение нового значения типа "CHANGETO 123*Fx/{SUM Fx}", где Fx - поле, отичное от того, которому производится присвоение? Так удобно назначать группе участков путевые расходы пропорционально отношению длин каждого из них к общей длине группы.

Если этой возможности нет, нельзя ли это реализовать? Скажем, с использованием специального синтаксиса (фигурные или квадратные скобки), который говорил бы системе сначала выполнить подзапрос и его результат подставить на это место?
 
Сейчас в рамках метаязыка запросов в браузере БД это не сделать, но можно выполнить через SQL-запрос к слою (меню Карта->Запрос->SQL запрос). Запрос будет звучать примерно так:
UPDATE [Пример тепловой сети]
SET [Название поля куда пишем] = 123 * [Длина участка, м] / (SELECT SUM([Длина участка, м]) FROM [Пример тепловой сети])
 
Спасибо.

Но ведь при этом не получится сделать это для _группы_? (Т.е. и присвоение, и сумма должны ограничиваться выделенными объектами.) Или я не прав?
 
Можно:

UPDATE L
SET L.[Название поля куда пишем] = 123 * [Длина участка, м] /
(SELECT SUM([Длина участка, м]) FROM [Пример тепловой сети] AS L1 WHERE L1.geometry.selected() = 1)
FROM [Пример тепловой сети] AS L WHERE L.geometry.selected() = 1
 
Спасибо.
Страницы: 1