RUS  ENG 

SQL запрос, кол-во пересечений

Страницы: 1
RSS
SQL запрос, кол-во пересечений
 
Добрый день. Есть следующая ситуация. Несколько потребителей тепловой сети попадают в площадной объект (дом) другого слоя. В БД этого площадного объекта есть поле нагрузка, на весь дом в целом. Можно ли с помощью SQL запроса занести эту нагрузку в каждый вошедший в площадной объект потребитель разделив ее на количество этих потребителей? Т.е если у дома нагрузка допустим 0.6, в него попадает 3 потребителя, то в каждый потребитель проставляется нагрузка по 0.2. Так соответственно по каждому площадному объекту.
 
Проблема возникает следующая "Aggregate function 'count' can be used only in SELECT or HAVING clause." О чем говорится понятно, но как бороться с этим не совсем ясно
Изменено: Алексей Демин - 20.05.2024 14:21:32
 
Вопрос 1 - быстрее всего решается с применением INNER JOIN, запрос похожей конструкции:

Код
UPDATE TS SET TS.[Расчетная нагрузка на отопление, Гкал/ч] = t2.QQQQQ
FROM [Тепловая сеть] AS TS, [building] AS H
INNER JOIN
         (select d.sys,  d.Q/count(*) as QQQQQ
          from [building] as d, [Тепловая сеть] as ts2 
          where ts2.typeid=3 and  ts2.Geometry.Within(d.Geometry) 
         GROUP by d.sys ) AS t2
on H.sys = t2.sys
WHERE TS.typeid=3 AND TS.Geometry.STWithin(H.Geometry)


Вопрос 2,
Агрегатная функция 'count' может использоваться только в предложении SELECT или HAVING. У вас, предположу, скорее всего в UPDATE.
 
Интересная, конструкция, сложнее чем я думал. Спасибо, буду разбираться. Я то пытался без inner join, видимо без этого нельзя.
Страницы: 1