日期:2014-05-16  浏览次数:20634 次

再次发帖求助,之前发的可能没描述清楚
之前发过一贴,可能是我没描述清楚,让大家了解错了;
http://bbs.csdn.net/topics/390678388

关于统计地区排序问题;和前面发的,把A\C调换了一下,

 先有记录表一张,如下:
 序号 地区 去地区时间
1 C 2013/12/25 9:00
 2 B 2013/12/25 9:30
 3 A 2013/12/25 10:00
 4 D 2013/12/25 11:00
 5 C 2013/12/26 8:00
 6 A 2013/12/26 9:00
 7 D 2013/12/26 11:00
 8 C 2013/12/27 10:00
 9 A 2013/12/27 13:00
 10 D 2013/12/27 13:30
 11 B 2013/12/27 13:32

现想统计地区排序,主要方便后面操作,排序的大致规则是这样,根据去地区的频率(一天去多次算一次),然后结合一天内去多个地方的时间排序;

 根据上面的数据需要得到的结果
 C
 A
 D
 B

CREATE TABLE Invoice([ID] [INT],
AddressCode [VARCHAR](20),CreateTime [DATETIME]);
 
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(1,'C','2013/12/25 9:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(2,'B','2013/12/25 9:30')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(3,'A','2013/12/25 10:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(4,'D','2013/12/25 11:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(5,'C','2013/12/26 8:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(6,'A','2013/12/26 9:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(7,'D','2013/12/26 11:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(8,'C','2013/12/27 10:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(9,'A','2013/12/27 13:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(10,'D','2013/12/27 13:30')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(10,'B','2013/12/27 13:32')



可能有个隐性需求没说到位;
这样查询的话,完全是按照去的频率进行排序;还需要加时间进行排序
比如1个月我去A地区10次,B地区10次,C地区12次,D地区 8次
但是如果同一天去ABCD这4个地区的顺序是B\C\A\D
那么我想得到的顺序是 C\B\A\D 当然还有一种想法,就是如果去次数相差不大,还是已时间优先,那么排序就是B\C\A\D 
我想要的就是大致满足要求就可以了, 

比如我每天都去ABCD,但是我每天都是先去D 再C 再A 最后去B,根据大家提供的那么排序就是ABCD或者是DCBA
,而需要的结果是DCAB;这是比较极端;

 我经常去的肯定放在前面,但是相差1-2次,还是想按照每天去的时间排序,就是结合频率与时间 
------解决方案--------------------


CREATE TABLE Invoice([ID] [INT],
AddressCode [VARCHAR](20),CreateTime [DATETIME]);
 
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(1,'C','2013/12/25 9:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(2,'B','2013/12/25 9:30')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(3,'A','2013/12/25 10:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(4,'D','2013/12/25 11:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(5,'C','2013/12/26 8:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(6,'A','2013/12/26 9:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(7,'D','2013/12/26 11:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(8,'C','2013/12/27 10:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(9,'A','2013/12/27 13:00')
INSERT INTO Invoice(ID,AddressCode,CreateTime) VALUES(10,'D','2013/12/27 13: