现有数据:
machinename labeldate printdate serialnumber
5RS092ZAD210000 2014-05-21 2014-05-21 1
5RS092ZAD210000 2014-05-21 2014-05-21 2
5RS092ZAD210000 2014-05-21 2014-05-21 3
5RS092ZAD210000 2014-05-21 2014-05-21 4
5RS092ZAD210000 2014-05-21 2014-05-21 5
5RS092ZAD210000 2014-05-21 2014-05-21 6
5RS092ZAD210000 2014-05-21 2014-05-21 7
5RS092ZAD210000 2014-05-21 2014-05-21 8
5RS092ZAD210000 2014-05-21 2014-05-21 10
5RS092ZAD210000 2014-05-21 2014-05-21 11
5RS092ZAD210000 2014-05-21 2014-05-21 12
5RS092ZAD210000 2014-05-21 2014-05-21 9
5RS092ZAD210000 2014-05-21 2014-05-21 13
5RS092ZAD210000 2014-05-21 2014-05-21 14
5RS092ZAD210000 2014-05-21 2014-05-21 15
5RS092ZAD210000 2014-05-21 2014-05-21 16
5RS092ZAD210000 2014-05-21 2014-05-21 17
5RS092ZAD210000 2014-05-22 2014-05-22 18
5RS092ZAD210000 2014-05-22 2014-05-22 19
5RS092ZAD210000 2014-05-22 2014-05-22 20
5RS092ZAD210000 2014-05-22 2014-05-22 21
5RS092ZAD210000 2014-05-22 2014-05-22 22
5RS092ZAD210000 2014-05-21 2014-05-21 23
5RS092ZAD210000 2014-05-21 2014-05-21 24
5RS092ZAD210000 2014-05-21 2014-05-21 25
5RS092ZAD210000 2014-05-21 2014-05-21 26
5RS092ZAD210000 2014-05-21 2014-05-21 27
5RS092ZAD210000 2014-05-21 2014-05-21 28
要把数据分组为以下形式:
machinename labeldate begin end count
5RS092ZAD210000 2014-05-21 1 17 17
5RS092ZAD210000 2014-05-22 18 22 5
5RS092ZAD210000 2014-05-21 23 28 6
machinename为物品号,labeldate为标签日期, printdate打印日期,serialnumber流水号
要求用sql语句或存储过程做
求各位大神多多帮助,谢谢
------解决方案--------------------
间断或者孤岛问题 去搜索下吧。
------解决方案--------------------
create table test (machinename varchar(20),labeldate datetime,printdate datetime,serialnumber int)
insert test
select '5RS092ZAD210000','2014-05-21','2014-05-21',1 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',2 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',3 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',4 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',5 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',6 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',7 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',8 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',10 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',11 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',12 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',9 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',13 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',14 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',15 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',16 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',17 union all
select '5RS092ZAD210000','2014-05-22','2014-05-22',18 union all
select '5RS092ZAD210000','2014-05-22','2014-05-22',19 union all
select '5RS092ZAD210000','2014-05-22','2014-05-22',20 union all
select '5RS092ZAD210000','2014-05-22','2014-05-22',21 union all
select '5RS092ZAD210000','2014-05-22','2014-05-22',22 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',23 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',24 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',25 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',26 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',27 union all
select '5RS092ZAD210000','2014-05-21','2014-05-21',28
with a as (
select machinename,labeldate,serialnumber,