SQL SELECT ID ИЗ МАКС. ЗНАЧЕНИЯ - PullRequest
0 голосов
/ 21 июня 2019

у меня 3 стола,

- Employee (idemployee, iddivision, firstname, lastname)
- Salary (idsalary, idemployee, dateadded, amount)
- division (iddivision, divisionname)

я хочу отобразить имя с наибольшей суммой между январем и апрелем

пока я пытался

SELECT firstname, MAX(Total) FROM (
SELECT firstname,SUM(amount) AS Total
FROM salary
JOIN employee ON employee.idemployee=salary.idemployee
WHERE dateadded BETWEEN "2019-1-1" AND "2019-4-1"
GROUP BY employee.idemployee) as t

но sql employeeid показывается неправильно. почему?

Ответы [ 2 ]

1 голос
/ 21 июня 2019
SELECT employee.firstname, SUM(salary.amount) AS Total
FROM salary
  JOIN employee 
    ON employee.idemployee=salary.idemployee
WHERE salary.dateadded BETWEEN "2019-01-01" AND "2019-04-01"
GROUP BY employee.firstname
ORDER BY 2 DESC
LIMIT 1

Вы фильтруете по нужному диапазону, затем суммируете суммы в этом диапазоне, группируя по сотруднику. Если вы заказываете на эту сумму и получаете только первый ряд, он должен соответствовать тому, что вы ищете.

Еще лучше, если ваши сотрудники просто имеют имя в атрибуте имени, у вас есть риск ошибочно сгруппировать по одному имени. Итак, чтобы лучше определить сотрудника, я бы добавил idemployee к предложению group by. Как это:

SELECT employee.idemployee, employee.firstname, SUM(salary.amount) AS Total
FROM salary
  JOIN employee 
    ON employee.idemployee=salary.idemployee
WHERE salary.dateadded BETWEEN "2019-01-01" AND "2019-04-01"
GROUP BY employee.idemployee,employee.firstname
ORDER BY 3 DESC
LIMIT 1
0 голосов
/ 21 июня 2019

Вы хотите сказать, что хотите, чтобы он был заказан от наибольшего к наименьшему?

SELECT firstname, Total FROM (
SELECT firstname,SUM(amount) AS Total
FROM salary
JOIN employee ON employee.idemployee=salary.idemployee
WHERE dateadded BETWEEN "2019-1-1" AND "2019-4-1"
GROUP BY employee.idemployee) as t
order by desc Total
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...