在 SQL 中按 clientId 和 date 分组

Stefan0309

我有下表:

表

我想做 groupBy 日期和特定客户端 where IsDeleted = 0

更准确地说,我想这样做:

结果

此屏幕截图中的数据不反映表中的数据。

因此,例如,客户端 Anne Marie 在我的数据库中的 ClientId = 12。

我需要每个月分组,然后再分组?我的意思是,我可以在一个月内有多个记录..

我希望我发布了明确的问题,如果没有,请写信以提供更多详细信息。

更新:

我需要这样的东西:

select 
    Convert([date], [Date]) as [Date], 
    TotalAttendants as Total,
    FemaleAttendants as Women, 
    MaleAttendants
from
    dbo.Events
where 
    EventTypeId = 1 
    and IsDeleted = 0
group by 
    Convert([date], date)
order by 
    Convert([date], date)

只有我需要将这些日期包装成月份(T-SQL 或类似的东西)。

最后,我需要将此查询重写为 C# 的 linq

斯图

从您所需输出的示例图片看来,您只需要在每种情况下使用sum聚合函数和 group by date,但是不清楚“another group by”是什么意思,因此请澄清是否需要。

select concat(Left(DateName(month,[date]),3), ' ', Year([date])), 
    sum(TotalAttendants) as Total,
    Sum(FemaleAttemdants) as Women,
    Sum(MaleAttendants) as Men
from table
where IsDeleted=0
group by concat(Left(DateName(month,[date]),3), ' ', Year([date]))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章