博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
连续最长加班天数
阅读量:7286 次
发布时间:2019-06-30

本文共 1009 字,大约阅读时间需要 3 分钟。

SQL总结:

  1.连续最长加班天数

    原表数据如下:(id:加班者id,通俗就是谁加班。日期:哪天加的班。flag:是否加班标志,1代表这个人在这个日期加班,0代表没加班)

id 日期 flag
1 20130101 1
1 20130102 1
1 20130103 0
1 20130104 1
1 20130105 1
1 20130106 1

  得出结果集应是:

ID start_date end_date days
1 20130104 20130106 3

SQLSERVER数据库测试过的脚本:

  

with t1 as (

select id,date-row_number()over(partition by id order by date) rn,date
from dbo.test_overtime where flag=1),
t2 as (
select id,max(date) end_date,min(date) start_date,count(1)lianxu from t1 group by rn,id
)

select * from t2 where lianxu in (select max(lianxu) from t2 group by id)

2..部门员工的累加出账

       原始数据如下:

部门ID 员工ID 年月 出账数目
1 21 199601 3000
1 21 199602 4000
1 21 199603 4000
1 21 199604 5000
2 31 199601 1000
2 31 199602 2000
2 31 199603 3000

      结果表:

部门 年月 出账
1 199601 3000
1 199602 7000
1 199603 11000
1 199604 16000
1 199601 1000
1 199602 3000
1 199603 6000

脚本:

       

SELECT DEP,YEARDATE,

SUM(CHUZHANG) OVER(PARTITION BY DEP order by YEARDATE RANGE BETWEEN UNBOUNDed preceding and preceding )

FROM TEST

 

转载于:https://www.cnblogs.com/doudou1/p/5262250.html

你可能感兴趣的文章
5Python全栈之路系列之算法
查看>>
一个效果不错的Java Swing模拟屏幕截图工具类
查看>>
MySQL 的主从复制
查看>>
把合同中红色印章实现打印不显示方法
查看>>
linux调优工具使用
查看>>
php.ini中开启段标签
查看>>
php-扩展编译安装扩展(通用版)
查看>>
信号槽的实现实例—— Qt 和 Boost
查看>>
一段简单的php翻页代码
查看>>
AMD峰会:AMD继续领先intel 并走在节能前沿
查看>>
MySQL第三方复制工具 --- Tungsten-Replicator
查看>>
软件平台与框架的生命周期
查看>>
mysql 引擎MyISAM 和 InnoDB区别
查看>>
Docker(二十)在 Kubernetes 中配置私有 DNS 和上游域名服务器
查看>>
AIX 6.1 + HACMP 6.1 + Oracle 11g双机实施 (1) --- AIX 6.1配置HACMP 6.1
查看>>
我的友情链接
查看>>
mysqldump 使用
查看>>
做最好的自己,人生十件事(事业,人生,情感)
查看>>
jboss 优化
查看>>
Android OpenGL ES与EGL
查看>>