weixin_42853935 2019-04-12 11:28 采纳率: 85.7%
浏览 424
已采纳

sql server 的语句统计外包人员出勤时间

图片说明

需要sql语句将这张表
name 姓名 dept部门组织 date 考勤日期 timeTotal 工时总计
这四个栏位的数据组成如下图的查询结果。
需求:
每个月1-31天所有的数据对应栏位显示,最上面那个2019-04的抬头和每个人的最后total工时总计可以不用计算。只要帮我拼出sql语句就好了,应该是个交叉报表,可能高手还要指导我一下怎么虚拟出一个月31个日的列名,请高手提供完整的思路最好是代码,感谢

图片说明

可以用临时表的存储过程来做,也可以新增一张实体表,抬头是月的每日固定列,请高手多多指点

  • 写回答

2条回答 默认 最新

  • o(╯□╰)o ! 2019-04-12 11:58
    关注

    图片说明

    SELECT
        t.dept,
        t.name,
        MAX ( CASE WHEN RIGHT(t.[date], 2) = '01' THEN t.timeTotal END ) '1',
        MAX ( CASE WHEN RIGHT(t.[date], 2) = '02' THEN t.timeTotal END ) '2',
        MAX ( CASE WHEN RIGHT(t.[date], 2) = '03' THEN t.timeTotal END ) '3' 
    FROM
        Test t 
    GROUP BY
        t.dept, t.name
    

    RIGHT(t.[date], 2) // 从右往左截取2个字符串

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题