У меня есть 3 таблицы, к которым я пытаюсь присоединиться, и получить сумму одного столбца. У меня с трудом возникает рабочий запрос. Вот таблицыSQL, нахождение суммы на соединенных таблицах
CoinAwards
+----+------------+------------+-----------+
| ID | EmployeeID | AwardDate | CoinLevel |
+----+------------+------------+-----------+
| 1 | 116733 | 6/11/2015 | 1 |
| 2 | 116359 | 5/20/2016 | 3 |
| 3 | 116733 | 12/8/2015 | 5 |
| 4 | 10637 | 10/25/2015 | 2 |
| 5 | 105197 | 9/15/2016 | 3 |
+----+------------+------------+-----------+
CoinLevels
+----+-------+
| ID | Value |
+----+-------+
| 1 | 5 |
| 2 | 10 |
| 3 | 15 |
| 4 | 50 |
| 5 | 100 |
+----+-------+
Employees
+------------+------------+----------+
| EmployeeID | FirstName | LastName |
+------------+------------+----------+
| 116733 | John | Doe |
| 116359 | Jason | Watson |
| 10637 | Brandon | Wilson |
| 105197 | Mike | Jones |
+------------+------------+----------+
Что мне нужно сделать, это сообщить о суммарных значениях монет, данные работника в течение года. Таким образом, окончательный результат я ищу это:
RESULT: Total Sum of Coin Values given in 2015
+------------+------------+----------+-------------------------+
| EmployeeID | FirstName | LastName | Sum_Of_2015_Coin_Values |
+------------+------------+----------+-------------------------+
| 116733 | John | Doe | 105 |
| 116359 | Jason | Watson | 0 |
| 10637 | Brandon | Wilson | 10 |
| 105197 | Mike | Jones | 0 |
+------------+------------+----------+-------------------------+
Вот запрос я работал, но он не работает:
SELECT CoinAwards.EmployeeID, CoinAwards.AwardDate, CoinAwards.CoinLevel,
SUM(CoinLevels.Value) AS Sum_Of_2015_Coin_Values,
Employees.FirstName, Employees.Lastname
FROM CoinAwards
LEFT OUTER JOIN
CoinLevels ON CoinAwards.CoinLevel = CoinLevels.ID
LEFT OUTER JOIN
Employees ON Employees.EmployeeID = CoinAwards.EmployeeID
WHERE (CoinAwards.AwardDate BETWEEN '01/01/2015' AND '12/31/2015')
GROUP BY CoinAwards.EmployeeID
Каждый знает, как я могу изменить этот запрос чтобы получить результат, который я ищу? Спасибо за любую помощь!
Что значит "не работает" означает? Вы получаете сообщение об ошибке? –
Возьмите CoinAwards.AwardDate, CoinAwards.CoinLevel, из вашего SELECT - вы говорите, что не хотите их! GROUP BY – Cato
Спасибо вам обоим. Да, я получал ошибку и не понимал, что мне нужно использовать агрегатные функции в столбцах или оставить их – Cineno28