Я не уверен, что на 100% слежу за вашим вопросом, если вы просто хотите присоединиться к нему в качестве подзапроса, должна работать приведенная ниже логика.
SELECT TT.TranRId
,MAX(TT.TInQty) AS InQty
,MAX(TT.TOutQty) AS OutQty
,Stock.[Sum]
FROM TReg TR
LEFT JOIN TTrans TT
ON TR.TRegId = TT.TrRegId
LEFT JOIN (
SELECT TT.TransRId
,(SUM(TT.TInQty) - SUM(TT.TOutQty)) as Sum
FROM TTrans TT
LEFT JOIN TReg TR
ON TR.TRegId = TT.TrRegId
WHERE TR.TransDate <= '2018-08-24'
AND TT.Stid = 2
GROUP BY TT.TranRId
) AS Stock
ON Stock.TranRId = TT.TranRId
WHERE TT.Stid = 2
AND TR.TransDate BETWEEN '2018-08-25' AND '2018-08-28'
GROUP BY TT.TranRId
ORDER BY TT.TranRId
редактировать:
Я заметил tt.TranRId и tt.Tran *** s *** RID, если это не опечатка, ее нужно исправить, если нет, мой ответ не сработает для вас.
Если вам нужны конкретные даты, в том числе дата в логике соединения вместе с идентификатором даст вам соответствующий результат ... не зная вашего набора данных, я не уверен, является ли TranRId уникальным ... извините за это!