返回信息流一个记录明细表,现在有如下的查询结果展现的需求:
表名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
请教各位大虾,能实现吗?
这是一条镜像帖。来源:北邮人论坛 / database / #5161同步于 2011/1/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
一个SQL查询的写法请教
xziping
2011/1/4镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
仅供参考~
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倒排序。
: ...................