0

我正在尝试显示 3 个时期的平均休假天数和病假天数。

到目前为止,我有这个 SQL 查询:

SELECT AVG(VACATIONHOURS) AS 'Vacation hours', AVG(SICKLEAVEHOURS) AS 'SICK DAYS'
FROM HUMANRESOURCES.EMPLOYEE E
WHERE E.BIRTHDATE BETWEEN '01-01-1960' AND '12-31-1969'
UNION ALL
SELECT AVG(VACATIONHOURS) AS 'VACATION', AVG(SICKLEAVEHOURS) AS 'SICK DAYS'
FROM HUMANRESOURCES.EMPLOYEE E
WHERE E.BIRTHDATE BETWEEN '01-01-1970' AND '12-31-1979'
UNION ALL
SELECT AVG(VACATIONHOURS) AS 'VACATION', AVG(SICKLEAVEHOURS) AS 'SICK DAYS'
FROM HUMANRESOURCES.EMPLOYEE E
WHERE E.BIRTHDATE BETWEEN '01-01-1980' AND '12-31-1989'
;

我的输出只有 2 列病假和休假日,下面 3 行带有数字。

输出图片

我的问题是如何添加显示年份的第三列?

我需要报告生成器,所以我可以正确地表示该信息

4

2 回答 2

0

我希望您希望在 where 子句中添加年份,然后添加 max(years)

SELECT AVG(VACATIONHOURS) AS 'Vacation hours', 
       AVG(SICKLEAVEHOURS) AS 'SICK DAYS', 
       max('1960 to 1969')
 FROM HUMANRESOURCES.EMPLOYEE E
WHERE E.BIRTHDATE BETWEEN '01-01-1960' AND '12-31-1969'
于 2017-10-11T22:06:02.930 回答
0

我建议你把这些分组。我会这样做:

SELECT CONCAT(YEAR(BIRTHDATE), 's') as decade,
       AVG(VACATIONHOURS) AS `Vacation hours`,
       AVG(SICKLEAVEHOURS) AS `SICK DAYS`
FROM HUMANRESOURCES.EMPLOYEE E
GROUP BY decade
ORDER BY decade;
于 2017-10-11T23:26:15.707 回答