Запросить получение суммы из 2 разных таблиц, возможно ли это в одном запросе? - PullRequest
0 голосов
/ 02 ноября 2009

Спасибо за всю помощь, теперь я столкнулся с серьезной проблемой!

У меня есть 2 таблицы, которые содержат ежедневные комиссии, и за каждый день , мне нужно СУММАТЬ ежедневные итоги по каждой таблице. Максимальный дневной лимит составляет 100 долларов, поэтому все, что превышает 100 долларов в день, составляет 100 долларов.

Сотрудник (employeeID INT PK, totalCommisions INT)

Теперь 2 таблицы, которые содержат данные комиссии:

ProductSales (productID INT, employeeID INT, комиссия INT, Created DATETIME)

Рефералы (referalID INT, employeeID INT, комиссия INT, Created DATETIME).

Сотрудник может иметь 10 продаж товара в день и 50 рефералов. Ключевым моментом является то, что СУММА комиссионных как для ProductSales, так и для Рефералов, если она превышает 100 долларов США, установлена ​​на 100 долларов США (то есть, максимум 100 долларов США в день).

Нужный мне запрос - обновить столбец TotalCommission таблиц сотрудников, указав общее количество комиссионных, полученных за каждого сотрудника (весь период, без диапазона дат).

В запросе должен использоваться оператор CASE, поскольку ежедневная сумма не может превышать 100 долларов США (сумма комиссий от ProductSales и Referrals за день).

Предыдущий вопрос: Запрос на получение суммы комиссионных с сотрудников

Ответы [ 2 ]

1 голос
/ 02 ноября 2009

Может быть как то так -

select employeeID, Year(Created), Month(Created), Day(Created),
case
  WHEN sum(Commission) > 100 THEN 100
  ELSE sum(Commission)
END
from
(
  select employeeID, Created, commission from ProductSales
  UNION ALL
  select employeeID, Created, commission from Referrals
) Commissions
group by employeeID, Year(Created), Month(Created), Day(Created)
1 голос
/ 02 ноября 2009

Это может быть легко достигнуто с помощью подзапросов. Вы пишете простой запрос, чтобы сделать что-то с одной таблицей, сделать то же самое с другой, а затем соединить эти две и сделать то, что вы должны сделать в выбранной части. Запрос будет выглядеть так:

SELECT (здесь идет дело и суммирование) ОТ (запрос от ProductSales) ВНЕШНЕЕ СОЕДИНЕНИЕ (запрос от рефералов) ВКЛ (...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...