RUS  ENG 

Подключение временной таблицы (SQL)

Дмитрий Емельянов , 24 сентября 2018

Подключение временной таблицы (SQL)

Бывают ситуации, когда в рамках SQL запроса надо внести изменение в таблицу, но вносить нужно не статичные данные или данные хранящиеся во 2 таблице, а результаты выбора данных, к примеру сумму или максимальное значение. В ZuluGIS версии  8.0.0.6753 и выше, добавлена поддержка оператора SELECT в конструкции INNER JOIN, который предназначен для подключения дополнительных таблиц.

В приведенном ниже примере, в поле "Входящий расход", которое было добавлено в базу данных по узлам, записывается максимальный расход примыкающих к нему участков.

update t1 SET t1.[Входящий расход]= t2.mg
from [Тепловая сеть] as t1
INNER JOIN
(select uzel.sys, max(uch.[Расход воды в подающем трубопроводе, т/ч]) as mg
from [Тепловая сеть] as uch, [Тепловая сеть] as uzel
where uzel.typeid=2 and uch.typeid=6 and
uch.Geometry.STTouches(uzel.Geometry) group by uzel.sys) as t2
on t1.sys = t2.sys 

Пример подсчета количества потребителей, попадающих на здание
update t1 set t1.[Количество ИТП] = t2.kol_vo
from [Здания] as t1
INNER JOIN
(select d.sys, count(*) as kol_vo
from [Здания] as d, [Тепловая сеть №1] as p
where p.typeid=3 and
p.Geometry.Within(d.Geometry) group by d.sys) as t2
on t1.sys = t2.sys

Скачать пример (85.68 КБ)


Возврат к списку

Последнее обновление — 08.07.2021 02:43:28