首页 > 解决方案 > 如何在 SQL Server 上按用户计算每天的出勤时间

问题描述

我刚来这地方。

我在一张桌子上有闲置数据: 样本数据

我需要得到休闲的结果: 预期结果

我正在使用闲置的 SQL 查询: SQL Query

DECLARE @sql AS NVARCHAR(MAX)=''
DECLARE @cols AS NVARCHAR(MAX)=''

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Date)
        FROM vRecords
        ORDER BY ',' + QUOTENAME(Date)
        FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)')
    ,1,1,'')
SET @sql = N'
    SELECT EmpID, Name, ' + @cols + '
    FROM (
    select EmpID,Name,Date,Time
    from vRecords
    ) a
    PIVOT(COUNT(Time) FOR Date IN (' + @cols + ')) p'
EXECUTE(@sql)

我需要完成的是知道用户在每个 DATE 有多少次记录

但我得到错误的结果: 错误的结果

我究竟做错了什么?

抱歉所有链接,但因为我是新人,我无法嵌入图像。

标签: sqlsql-server

解决方案


我想通了这个问题。

所有问题都与日期格式有关。

这些列是使用这种格式 2018-09-12 生成的,数据是这种格式的 12/09/2018。

无论如何,感谢您的评论。


推荐阅读