SQL - сумма выпуска с объединениями - PullRequest
0 голосов
/ 10 апреля 2020

Я новичок в SQL.

Запрос:

SELECT 
    E.name AS Employee_Name, 
    P.HoursWorked AS Hours_Worked, 
    DATENAME(month, C.dayid) AS Month_Name
FROM employee E
INNER JOIN employeepaysummary P ON E.employeeId = P.employeeId
INNER JOIN CalendarDay C ON P.dayid = C.dayid ;

возвращает результат ниже:

Employee_Name   Hours_Worked    Month_Name
John, Sturgis       6           January
John, Sturgis       8           January
John, Sturgis       8           January
Sheldon, Cooper     7           January
Sheldon, Cooper     6           January

Как можно суммировать (часы_работал) столбец?

Ответы [ 3 ]

0 голосов
/ 10 апреля 2020

Пожалуйста, отметьте свою БД. Но ниже запрос должен работать просто отлично. Вам нужно использовать sum() и group by:

select E.name as Employee_Name, sum(P.HoursWorked) as Hours_Worked, 
DATENAME(month, C.dayid) AS Month_Name
from employee E
INNER JOIN employeepaysummary P ON E.employeeId = P.employeeId
INNER JOIN CalendarDay C ON P.dayid = C.dayid 
group by E.name,DATENAME(month, C.dayid);
0 голосов
/ 10 апреля 2020

Вы должны использовать SUM функцию агрегирования:

SELECT 
    E.name AS Employee_Name, 
    SUM(P.HoursWorked) AS Hours_Worked, 
    DATENAME(month, C.dayid) AS Month_Name
FROM employee E
INNER JOIN employeepaysummary P ON E.employeeId = P.employeeId
INNER JOIN CalendarDay C ON P.dayid = C.dayid 
GROUP BY 
    E.employeeId, E.name, DATENAME(month, C.dayid);
0 голосов
/ 10 апреля 2020

Вам просто нужна группа по

   select E.name as Employee_Name, sum(P.HoursWorked) as Hours_Worked, 
from employee E
INNER JOIN employeepaysummary P ON E.employeeId = P.employeeId
INNER JOIN CalendarDay C ON P.dayid = C.dayid group by Employee_Name ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...