[英]SQL-Oracle: Difficulties in resolving basic problems
Create a query to display the total number of employees and, of that total, the number of employees hired in 2005, 2006, 2007, and 2008. Create appropiate column headings. 创建一个查询以显示雇员总数,以及该总数,其中显示2005、2006、2007和2008年雇用的雇员数。创建适当的列标题。
So far i have managed to do this: 到目前为止,我已经做到了:
SELECT COUNT(DISTINCT employee_id) AS "Total",
(CASE WHEN hire_date BETWEEN '01-01-2005' AND '31-12-2005' THEN '2005'
WHEN hire_date BETWEEN '01-01-2006' AND '31-12-2006' THEN '2006'
WHEN hire_date BETWEEN '01-01-2007' AND '31-12-2007' THEN '2007'
WHEN hire_date BETWEEN '01-01-2008' AND '31-12-2008' THEN '2008'
ELSE 'Out of Range'
END ) AS "Years"
FROM employees
WHERE hire_date BETWEEN '31-12-2005' AND '01-01-2008'
GROUP BY hire_date;
But the output is not as it should be. 但是输出不是应该的。 Can't upload pictures due to my low reputation to see exactly what i mean :).
由于我的声誉低而无法上传图片,以准确了解我的意思:)。 Anyway, any suggestions please?
无论如何,有什么建议吗?
You should Use format like this yyyy-MM-dd
您应该使用类似
yyyy-MM-dd
格式
SELECT COUNT(DISTINCT employee_id) AS "Total",
SUM( CASE WHEN hire_date BETWEEN '2005-01-01' AND '2005-12-31' THEN 1 else 0 end) as
'2005',
SUM( CASE WHEN hire_date BETWEEN '2006-01-01' AND '2006-12-31' THEN 1 else 0 end) as
'2006',
SUM( CASE WHEN hire_date BETWEEN '2007-01-01' AND '2007-12-31' THEN 1 else 0 end) as
'2007',
SUM( CASE WHEN hire_date BETWEEN '2008-01-01' AND '2008-12-31' THEN 1 else 0 end) as
'2008',
SUM( CASE WHEN hire_date < '2005-01-01' OR hire_date > '31-12-2008'
THEN 1 else 0 end) as
"Out of Range"
FROM employees
You can probably change your query to something like 您可以将查询更改为
SELECT COUNT(employee_id) AS "Total",
SUM(case when hire_date BETWEEN '01-01-2005' AND '31-12-2005' THEN 1 else 0 end) as '2005',
SUM(case WHEN hire_date BETWEEN '01-01-2006' AND '31-12-2006' THEN 1 else 0 end) as '2006',
SUM(case WHEN hire_date BETWEEN '01-01-2008' AND '31-12-2008' THEN 1 else 0 end) as '2008',
SUM(case WHEN hire_date BETWEEN '01-01-2007' AND '31-12-2007' THEN 1 else 0 end) as '2007'
FROM employees
GROUP BY hire_date;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.