Этот запрос вычисляет поток на основе самого последнего заказа. Кто-нибудь может предложить более эффективный способ структурировать это? Я рассматривал CTE, но хочу, чтобы его было легко читать и запускать как можно быстрее.
SELECT
@nTotalFlowRate = SUM(o.[OrderCFS])
FROM DeliveryPoints
JOIN DeliveryPointsList ON DeliveryPointsList.DeliveryPointID = DeliveryPoints.DeliveryPointID
AND DeliveryPointsList.DeliveryPointsListStatus = 'A'
JOIN [dbo].[Orders] AS o ON o.DeliveryPointID = DeliveryPointsList.DeliveryPointID
AND o.OrderId =
( SELECT TOP 1 o1.OrderID
FROM [dbo].[Orders] AS o1
WHERE ( o1.[AcctEntityID] = @aiAcctEntityID )
AND ( o1.[WaterSourceID] = @aiWaterSourceID )
AND ( o1.[DeliveryPointID] = DeliveryPointsList.[DeliveryPointID] )
AND ( (o1.OrderTypeCode = 'W' and o1.WebOrderApproved = 1)
OR (o1.OrderTypeCode !='W'))
AND ( o1.[OrderStatus] = 'A' ) --Added 5/17/2019 BTO Exclude Inactive Orders
AND ( o1.[ChangeTime] <= GETDATE() )
ORDER BY o1.ChangeTime desc)
WHERE DeliveryPointsList.AllotAcctEntityID = @aiAcctEntityID