Sqlserver根据身份证号码查询年龄分布 籍贯分布DATEDIFF Case函数

本文介绍了如何使用SQLServer的DATEDIFF和Case函数,结合身份证号码进行工人年龄和籍贯的分布查询。包括本月新开、退场、在建项目的统计,以及30天内的工人考勤和进退场情况。同时,详细展示了如何查询数量最多的前十个工种。
摘要由CSDN通过智能技术生成

Sql函数调用

项目记录

劳务实名制系统首页数据统计

应用到的SQL Server 函数

函数 案例 说明
DATEDIFF(part,start,end) select * from [表名] where DateDiff(dd,[字段DT],getdate())<=7 七天内的数据
CONVERT(varchar(20), date, 23) select CONVERT(varchar(12) , getdate(), 23 ) 2020-05-25(格式转换)
聚合函数 COUNT、SUM、MIN 和 MAX 求记录数,求和,最小值,最大值
Case函数 case type when '1' then '进场' else '退场' end 条件判断

SQL Server查询语句

本月新开,本月退场,在建项目,工人总数

Select
(Select COUNT(Fid) from SM_Project where DATEDIFF(dd,startDate,GETDATE())>0 and DATEDIFF(dd,startDate,GETDATE())<30 ) 本月新开,
(Select COUNT(Fid) from SM_Project where DATEDIFF(dd,completeDate,GETDATE())>0 and DATEDIFF(dd,completeDate,GETDATE())<30 ) 本月退场,
(Select COUNT(Fid) from SM_Project where DATEDIFF(dd,completeDate,GETDATE())<0 ) 在建项目,
(select COUNT(Fid) from SM_ProjectWorker ) 工人总数

在这里插入图片描述

查询30天内工人考勤情况

select COUNT(*) as 考勤人数,日期 
from 
(Select CONVERT(varchar(100), date, 23) as 日期,workerFid 
from SM_WorkerAttendance where DateDiff(dd,date,getdate())<=30  
group by CONVERT(varchar(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值