Você pode combinar esses dados usando uma junção externa esquerda. Uma junção externa completa pode ser necessária às vezes também, mas nessa situação você só pode registrar o tempo em uma ordem de loja quando realmente tiver etapas de roteamento.
Consulta:
select timebgt.shopordernumber
, timebgt.PlannedTotalHours
, ttn.man_hours
from ( select sor.shopordernumber
, son.shoporder
, sum(PlannedTotalHours) PlannedTotalHours
from exactonlinerest..ShopOrderRoutingStepPlans son
join exactonlinerest..shoporders sor
on sor.id = son.shoporder
group
by sor.shopordernumber
, son.shoporder
)
timebgt
left
outer
join ( select mtn.shoporder
--, sor.shopordernumber
--, sor.description shoporderdescription
--, mtn.date
--, mtn.activity setup_or_run
--, mtn.status hour_status
, sum(mtn.laborhours) man_hours
--, emp.birthname man_name
--, mtn.hours wcr_hours
--, wcr.code wcr_code
--, wcr.description wcr_description
from exactonlinerest..MfgTimeTransactions mtn
join exactonlinerest..Employees emp
on emp.id = mtn.employee
join exactonlinerest..Workcenters wcr
on wcr.id = mtn.workcenter
join exactonlinerest..shoporders sor
on sor.id = mtn.shoporder
group
by mtn.shoporder
) ttn
on ttn.shoporder = timebgt.shoporder
order
by timebgt.shopordernumber