История изменений
Исправление 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;