LINUX.ORG.RU

История изменений

Исправление alex_the_v, (текущая версия) :

Я это дело не запускал, просто в текстовом редакторе набросал. Вроде, должно подойти, если я правильно понял смысл твоих наворотов. Попробуй, если не заработает - отпишись.

with work_aggr as (
  select wp.workotdel_id,
         wp.
         sum(wp.valuefact) as valuefact_sum
  from workpeople wp
  group by wp.workotdel_id
) 
select wu.id,
       wu.name,
       case wu.manualinput 
          when true then wo.valuefact
          else wa.valuefact_sum
       end
from workunit wu
inner join workotdel wo on wo.workunit_id = wu.id
inner join work_aggr wa on wa.workotdel_id = wo.id;

Исправление alex_the_v, :

Я это дело не запускал, просто в текстовом редакторе набросал. Вроде, должно подойти, если я правильно понял смысл твоих наворотов. Попробуй, если не заработает - отпишись.

Тут был фиговый вариант, ща допишу кое-что.

Исходная версия alex_the_v, :

Я это дело не запускал, просто в текстовом редакторе набросал. Вроде, должно подойти, если я правильно понял смысл твоих наворотов. Попробуй, если не заработает - отпишись.

with work_aggr as (
  select wp.workotdel_id,
         sum(wp.valuefact) as valuefact_sum
  from workpeople wp
  group by wp.workotdel_id
) 
select wu.id,
       wu.name,
       case wu.manualinput 
          when true then wo.valuefact
          else wa.valuefact_sum
       end
from workunit wu
inner join workotdel wo on wo.workunit_id = wu.id
inner join work_aggr wa on wa.workotdel_id = wo.id;