Sql 如何根据日期统计数据?
我有一个查询,可以得到一个雇员的计数 其中execoffice_status=1,并且它可以工作:Sql 如何根据日期统计数据?,sql,sql-server-2008,Sql,Sql Server 2008,我有一个查询,可以得到一个雇员的计数 其中execoffice_status=1,并且它可以工作: SELECT employeedept, execoffice_status, employee ,COUNT(*) AS 'employeetotal' FROM CSEReduxResponses WHERE execoffice_status = 1 GROUP BY execoffice_status, employee,employeedept 我想做的是根据执
SELECT employeedept, execoffice_status, employee ,COUNT(*) AS 'employeetotal'
FROM CSEReduxResponses
WHERE execoffice_status = 1
GROUP BY execoffice_status, employee,employeedept
我想做的是根据执行日期获取计数
我在这里试着这么做:
SELECT employeedept, execoffice_status, YEAR_cse =YEAR(execoffice_date),employee ,COUNT(*) AS 'employeetotal'
FROM CSEReduxResponses
WHERE execoffice_status = 1
GROUP BY execoffice_status, employee,employeedept,execoffice_date
我想按日期获得它,因为我写的新查询无法获得我想要的信息。
这是根据执行办公室的日期给我一个数字。我们所做的是给我一个没有的数字
甚至对我来说都有意义
我创建了一个虚拟表,我不能把它放在sqlfiddle上(不知道还有其他地方可以放它),因为
不是sqlfiddle工作不正常,必须关机
create table CSEReduxResponses (employeedept int, execoffice_status int, employee int, execoffice_date datetime);
insert into (employeedept , execoffice_status , employee , execoffice_date )
values (1,1,10,'2014-05-08'),
(1,1,10,'2014-05-08'),
(1,1,10,'2014-05-08'),
(2,2,11,'2014-05-08'),
(2,2,11,'2015-05-08'),
(2,2,11,'2015-05-08'),
(2,2,11,'2015-05-08'),
(2,2,11,'2015-04-08');
从上面的数据我想得到
employeedept | execoffice_status | employee | totalstars | year_cse
--------------------------------------------------------------------
1 | 1 | 10 |3 |2014
2 | 1 | 11 |1 |2014
2 | 1 | 11 |4 |2015
如果这不正确,您应该尝试更清楚地指定所需内容,包括样本数据和所需结果
SELECT execoffice_date, COUNT(*) AS 'employeetotal'
FROM CSEReduxResponses
GROUP BY execoffice_date;
更新:根据新信息进行了更改
SELECT employeedept, execoffice_status, employee, COUNT(*) AS 'totalstars', YEAR_cse =YEAR(execoffice_date)
FROM CSEReduxResponses
WHERE execoffice_status = 1
GROUP BY employeedept, execoffice_status, YEAR(execoffice_date), employee
对不起,我做了一些更改,谢谢,但这是全年的总数,但我想知道每一年的总数employee@user3591637:我已更改查询以生成您指定的结果。这意味着您最初的尝试很接近,但您的
分组方式
并不像您的选择