Sql Date在数据库中分配可用日期 [英] Sql Date Grouping with avaliable dates in database
本文介绍了Sql Date在数据库中分配可用日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Offerid date offeravaliable Emailid
73 6 / 8/2014 00:00:00 真 2
74 6/9/2014 00:00:00 真 2
75 6/10/2014 00:00:00 True 2
76 6/11/2014 00:00:00 True 2
77 6/12/2014 00:00:00 True 2
78 6/13/2014 00: 00:00 True 2
79 6/14/2014 00:00:00 True 2
80 6/16/2014 00: 00:00 True 2
81 6/17/2014 00:00:00 True 4
82 6/18/2014 00:00:00 True 4
83 2014/6/19 00:00:00 True 4
84 6/20/2014 00:00:00 True 4
89 6/27/2014 00:00:00 True 4
90 6/28/2014 00:00:00 True 4
91 6/29/2014 00:00:00 True 4
92 6/30/2014 00:00:00 True 4
93 6/1 / 2014 00:00:00 True 4
94 6/2/2014 00:00:00 True 4
95 6/3/2014 00:00:00 True 2
96 6/4 / 2014 00:00:00 True 2
97 6/5/2014 00:00:00 True 2
98 6/6/2014 00:00:00 True 2
99 6/7/2014 00:00:00 True < span class =code-digit> 2
100 6/21/2014 00:00:00 真 4
101 6/22/2014 00:00 :00 True 4
102 6/23/2014 00:00:00 True 4
103 6/24/2014 00:00:00 True 4
104 7/1/2014 00 :00:00 True 4
105 7/2/2014 00:00:00 True 4
106 7/3/2014 00:00:00 True 4
121 7/6/2014 00:00:00 True 2
122 7/7 / 2014 00:00:00 True 2
123 7/8/2014 00:00:00 True 2
以上记录我可以生成以下所有日期的组如
StartDate - EndDate EmailID
6/1/2014 - 2014年6月2日 4
6/3/2014 - 2014年6月14日 2
6/16/2014 - 2014年6月16日 2
6/17 / 2014 - 6/24/2014 4
6/27/2014 - 2014年6月30日 4
7/1/2014 - 2014年7月3日 4
i试图为每个EmailID找到连续的日期块?
任何人都可以解决这个问题
提前感谢
解决方案
尝试使用Group By
SELECT date ,count(*)
WHERE date 介于 @ start 和 @end
GROUP BY 日期跨度>
Offerid date offeravaliable Emailid
73 6/8/2014 00:00:00 True 2
74 6/9/2014 00:00:00 True 2
75 6/10/2014 00:00:00 True 2
76 6/11/2014 00:00:00 True 2
77 6/12/2014 00:00:00 True 2
78 6/13/2014 00:00:00 True 2
79 6/14/2014 00:00:00 True 2
80 6/16/2014 00:00:00 True 2
81 6/17/2014 00:00:00 True 4
82 6/18/2014 00:00:00 True 4
83 6/19/2014 00:00:00 True 4
84 6/20/2014 00:00:00 True 4
89 6/27/2014 00:00:00 True 4
90 6/28/2014 00:00:00 True 4
91 6/29/2014 00:00:00 True 4
92 6/30/2014 00:00:00 True 4
93 6/1/2014 00:00:00 True 4
94 6/2/2014 00:00:00 True 4
95 6/3/2014 00:00:00 True 2
96 6/4/2014 00:00:00 True 2
97 6/5/2014 00:00:00 True 2
98 6/6/2014 00:00:00 True 2
99 6/7/2014 00:00:00 True 2
100 6/21/2014 00:00:00 True 4
101 6/22/2014 00:00:00 True 4
102 6/23/2014 00:00:00 True 4
103 6/24/2014 00:00:00 True 4
104 7/1/2014 00:00:00 True 4
105 7/2/2014 00:00:00 True 4
106 7/3/2014 00:00:00 True 4
121 7/6/2014 00:00:00 True 2
122 7/7/2014 00:00:00 True 2
123 7/8/2014 00:00:00 True 2
above record through i can generate below group of all date like as
StartDate - EndDate EmailID
6/1/2014 - 6/2/2014 4
6/3/2014 - 6/14/2014 2
6/16/2014 - 6/16/2014 2
6/17/2014 - 6/24/2014 4
6/27/2014 - 6/30/2014 4
7/1/2014 - 7/3/2014 4
i trying to find, for each EmailID, the contiguous blocks of dates?
any one solve this question
thanks in advance
解决方案
try with Group By
SELECT date,count(*) WHERE date between @start and @end GROUP BY date
这篇关于Sql Date在数据库中分配可用日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文