求jfqsrq 是开始时间 jfzzrq 是结束时间
统计这些时间 具体要求是
jfqsrq j fzzrq
2008-1-1 2008-3-31
2008-4-1 2008 -6-30
2008-8-1 2008-9-31
2008 -10-1 2009-3-31
统计结果的应为
2008-1-1 2008-6-30
2008-8-1 2009 - 3-31
拿上一条数据的jfzzrq 和下一条数据的jfqsrq 相比 相差一月或是不差就合并起来
可用程序和sql语句来实现
自己写的程序实现
随手写了个大概,程序中去做的,当然你可以sql写函数或者存储过程去实现
var str = string.Empty;
for (int i = 0; i < dt.Rows.Count; i++)
{
var jfqsrq = dt.Rows[i]["jfqsrq"];
var jfzzrq = dt.Rows[i - 1]["jfzzrq"];
if (Convert.ToDateTime(jfqsrq).Subtract(Convert.ToDateTime(jfzzrq)) <= TimeSpan.FromDays(30))
{
str = dt.Rows[i - 1]["jfqsrq"] + "" + dt.Rows[i]["jfzzrq"];
}
}
dt是你查询出来的结果集,
最后str得到的就是你要的结果,再把它赋值给你需要的地方
感觉有点意思,不过sql的还没想出来...程序的比较简单
只要把数据取出放到dataset里然后遍历这个就可以了.
sql语句也可以实现,思路:创建两个临时表,多加一个id字段,然后俩表进行关联,table1.id+1=table2.id;关联后的结果select出来,进行datediff比较,如果符合条件,就直接取出,如果不符合,就不作处理,可以使用case when语句