首页 > 解决方案 > Sql Query 计数关联,同时获取名称以按日期查看总票数

问题描述

我想弄清楚如何在 MSSQL 中查询。我要查询的是每个员工提交了多少张票(在数据库中,引用submitter_id在 dbo.Tickets 表中)在此列中是员工编号。我有另一个名为 dbo.Users 的表,其中有一个与门票表id中的匹配submitter_id。我试图弄清楚如何创建计数以查看在特定日期范围内提交了多少票(显示用户name和计数)。对此的任何帮助将不胜感激。(我不知道怎么做 count* 部分)

SELECT Tickets.submitter_id, Users.Name, Tickets.created_at
FROM Tickets
INNER JOIN Users ON Tickets.submitter_id=Users.id;

也试过:

select
    u.Id,
    u.Name,
    t.created_at,
    t.submitter_id,
    COUNT(*) as numberOfTickets
from Users as u
join Tickets as t on t.submitter_id = u.Id
group by u.Id, u.Name, t.submitter_id
where t.created_at between '2017/11/01' and '2018/08/23'

标签: sqlsql-servertsql

解决方案


已编辑:添加了 HAVING 子句

正如评论中令人难过的那样,您应该使用 JOIN 和 GROUP。这是解决方案的示例:

select
u.Id,
u.Name,
t.submitter_id,
COUNT(*) as numberOfTickets
from Users as u
join Tickets as t on t.submitter_id = u.Id and t.date between '2017/11/01' and '2018/11/01'
group by u.Id, u.Name, t.submitter_id 

推荐阅读