Короткий ответ:
Колонка trdz_57 (заказанная) не суммирует данные из tblOrder и tblOrder_Podr, а вычитает из заказанной трудоёмкости то, что уже передано подрядчикам. То есть показывает остаток.
Аргументы со строками кода:
1. Сначала собираются часы, уже переданные подрядчикам (таблица tblOrder_Podr)
```sql
insert into @t1
select kod_order, sum(trPodrOt), sum(trPodr) from tblOrder_Podr ...
group by kod_order
```
Здесь sum(trPodr) — это заказанные часы, которые «съели» подрядчики.
sum(trPodrOt) — отчитанные часы, которые «съели» подрядчики.
2. В итоговом SELECT эти суммы ВЫЧИТАЮТСЯ из исходных величин заказа
· Для заказанной трудоёмкости (trdz_57):
```sql
case when t.kod is null then Round(O.trdz_57, 2)
else Round(O.Trdz_57 - t.tr, 2) end as Trdz_57
```
Видно оператор - t.tr (минус сумма trPodr). Это вычитание, а не сложение.
· Для отчитанной трудоёмкости (trdo_57):
```sql
case when t.kod is null then Round(O.trdo_57, 2)
else Round(O.trdo_57 - t.ot, 2) end as Trdo_57
```
Аналогично - t.ot.
· Разница (остаток):
```sql
ROUND(O.Trdz_57 - O.trdo_57 - t.tr + t.ot, 2) AS ost
```
Тоже вычитание с учётом подрядов.
3. Если подрядчиков нет — остаток равен исходному
Когда запись в @t1 отсутствует (t.kod is null), выводится просто O.trdz_57 без вычитаний.
Итог:
В коде нет ни одного места, где бы складывались поля из tblOrder и tblOrder_Podr. Везде выполняется О.tr - T.хвост*.
Поэтому trdz_57 = «исходная заказанная трудоёмкость» минус «часы, уже отданные подрядчикам» = оставшаяся заказанная.