Выручка применяется к заказам. Комиссия распространяется только на маршруты. Как я могу создать запрос, который будет возвращать все заказы с их выручкой и только комиссией за первый заказ; каждый другой заказ по тому же маршруту на ту же дату будет НЕДЕЙСТВИТЕЛЕН?
Я пробовал группировать, но это исключает детализацию заказов.
;
WITH
cteOrders(PostDate,Customer,Revenue)
AS
(
SELECT Date,Customer,Amount
FROM Orders
WHERE Amount > 0
AND Date BETWEEN @Start AND @End
),
cteCommission(Date,Customer,Commission)
AS
(
SELECT P.Date,P.Customer,P.Commission
FROM cteOrders
LEFT JOIN Pay P ON P.Date = O.Date AND P.Customer = O.Customer
)
SELECT *
FROM cteCommission
Ожидаемым результатом будет строка для каждого заказа, а комиссия будет взиматься только с первого заказа.
В результате комиссия взимается с каждой строки и, таким образом, значительно завышена.