现在有张表 :
姓名 任职日期 结束任职日期 任职年数 任职
张三 2001-10-13 2004-10-13 3 书记
张三 2003-10-1 2004-11-13 1 主任
李四 2001-10-13 2004-10-13 3 书记
李四 2004-10-13 2007-10-13 3 主任
我现在想查询 出 任书记和主任 连续任职年数大于3年的(连续任职 是任职开始时间 在 上一次任职时间段之间的算为连续任职)
查询结果如下:
1.张三
2.李四
或者更复杂点的
姓名 任职年总数 详细记录
2001-10-13 2004-10-13 3 书记
张三 3
2003-10-1 2004-11-13 1 主任
---------------------------------------
2001-10-13 2004-10-13 3 书记
李四 6
2004-10-13 2007-10-13 3 主任
有什么好的思路吗?用winform C#的dataGridView1做
1.sql语句怎么查询吗
2.如果不好查询怎么 处理啊? 思路
谢谢
sql语句的查询 连续日期 比较绕脑的。高手进。
答案:2 悬赏:40 手机版
解决时间 2021-05-02 21:27
- 提问者网友:暗中人
- 2021-05-02 02:37
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-05-02 03:06
加我QQ帮你解决它,解决完记得设为满意答案! QQ64155311
全部回答
- 1楼网友:醉吻情书
- 2021-05-02 03:36
我给你一点建议:不要光用SQL,很麻烦的
这么做:比如张三,按任职日期从前到后排序(这个SQL可以做到)
然后做这样一件事,先计算第一条记录时间段的天数(C#的日期函数直接可以做到)
重点:取出第二条记录,判断开始时间在不在第一条的时间段内,不在则跳过取第三条记录,在则将结束时间与上一条的结束时间比对,如果时间较大,则计算两个结束时间的相差天数,加到已计算的天数里
最后必定能得到任职的总天数,再把这个天数/365,计算出年数(从你的要求看,这个年数也要进行一个范围估算,比如360天也要加进一年,这个自己估计范围吧)
你的问题的麻烦点在于时间是有重叠的,而且开始结束时间算成年数是估算的,而不是精确
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯