У нас есть следующий SQL, который мы используем для расчета общих затрат.обновление суммы одной таблицы на основе ввода из другой таблицы
SELECT
DailyProduction.CustomerId as CustomerId,
SUM(Resource.CostPerUnit * DailyProduction.UnitsToStorage + Resource.CostPerUnit * DailyProduction.UnitsToMarket) AS TotalCost
FROM
dbo.hgm_ResourceTypes Resource
JOIN
dbo.hgm_ResourceDailyProduction DailyProduction
ON
Resource.ResourceId = DailyProduction.ResourceId
GROUP BY
DailyProduction.CustomerId
Как видно, мы собираем данные из двух разных таблиц, чтобы рассчитать общую стоимость производства для каждого клиента.
Теперь у нас есть требование добавить еще одну таблицу в этот микс. В этой новой таблице указывается скидка, которая применяется к каждому ресурсу для каждого клиента. Кроме того, несколько строк могут ссылаться на одного и того же клиента и на тот же ресурс. В таком случае все скидки должны суммироваться для определения общей скидки.
Например:
CUSTOMER: 1 RESOURCE: 1 DISCOUNT: 1
CUSTOMER: 1 RESOURCE: 1 DISCOUNT: 3
CUSTOMER: 1 RESOURCE: 2 DISCOUNT: 5
Таким образом, мы должны определить общую скидку для каждого клиента для каждого ресурса (это довольно легко сделать для меня). И затем используйте эту скидку в SQL выше и вычтите ее из CostPerUnit для этого конкретного ресурса при расчете столбца TotalCost (надеюсь, это имеет смысл). Я пробовал всевозможные объединения, и я надеюсь, что кто-то здесь поможет мне в этом. Буду признателен за любую оказанную помощь.
Спасибо!
Томас, это было очень быстро! Большое спасибо. Я сделаю снимок. – Azeem
Томас, большое спасибо. Это работало очень хорошо. Мне пришлось изменить использование Discount.Total немного, поэтому я не буду получать ошибки о том, что не входит в предложение GROUP BY или не является суммированием. Но оба запроса отлично работали. Еще раз спасибо. – Azeem