BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #5161同步于 2011/1/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

一个SQL查询的写法请教

xziping
2011/1/4镜像同步1 回复
一个记录明细表,现在有如下的查询结果展现的需求: 表名tblA,记录时间戳trantime(格式yyyymmddHHMMSS), 记录顺序号字段logid(规则是字母H开头+一个序列或者A开头+另一个序列),然后是一些其他记录内容的字段 现在从前台传过起止时间,要求每次查询100条,并按时间排序倒排序、按logid倒排序。 有一个复杂的需求是,还要查询出当前记录处于同一天中的第几条。 比如表中的记录是: logid transtime field1 field2 field3 H121 20110104112011 X Y Z H104 20110103112011 X Y Z A107 20110103011011 X Y Z H105 20110103112019 X Y Z A111 20110102112011 X Y Z H111 20110102112011 X Y Z 那输出结果就要是: transtime, lodid, rn H121 20110104112011,1 H105 20110103112019,3 H104 20110103112011,2 A107 20110103011011,1 H111 20110102112011,2 A111 20110102112011,1 请教各位大虾,能实现吗?
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
doubleKO机器人#1 · 2011/1/6
仅供参考~ SELECT `transtime` , `logid` , ( SELECT count( 1 ) FROM ko WHERE date( `transtime` ) = date( t.`transtime` ) AND `logid` <= t.`logid` AND `transtime` <= t.`transtime` ) AS rn FROM `ko` t ORDER BY `transtime` DESC , `logid` DESC LIMIT 0 , 100 结果: transtime logid rn 2011-01-04 11:20:11 H121 1 2011-01-03 11:20:19 H105 3 2011-01-03 11:20:11 H104 2 2011-01-03 01:10:11 A107 1 2011-01-02 11:20:11 H111 2 2011-01-02 11:20:11 A111 1 【 在 xziping (子平子) 的大作中提到: 】 : 一个记录明细表,现在有如下的查询结果展现的需求: : 表名tblA,记录时间戳trantime(格式yyyymmddHHMMSS), 记录顺序号字段logid(规则是字母H开头+一个序列或者A开头+另一个序列),然后是一些其他记录内容的字段 : 现在从前台传过起止时间,要求每次查询100条,并按时间排序倒排序、按logid倒排序。 : ...................