送分的问题。不会的,不回复的,打pp

gumplei 2004-09-15 09:02:23
sql = "select userorder,insertdate from insert_tab where insertdate between fromdate and todate"
这个是选择在表insert_tab中处于日期fromdate和todate之间的所有纪录。我现在要实现查找出这些记录中(userorder是自然序列,和insertdate是同向增长)的某一位(假设为n)的纪录。我该怎么办呢?
userorder为整数
...全文
205 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
gumplei 2004-09-15
  • 打赏
  • 举报
回复
sql = "select userorder,useraccount,insertdate from (select userorder,useraccount,to_char(insertdate,'yyyy/mm/dd') insertdate from insert_tab where rownum=insertorder insertdate between to_date('"+fromdate+"','yyyy-mm-dd') and to_date('"+todate+"','yyyy-mm-dd')) where rownum < (insertorder+1)
minus
select userorder,useraccount,insertdate from (select userorder,useraccount,to_char(insertdate,'yyyy/mm/dd') insertdate from insert_tab where rownum=insertorder insertdate between to_date('"+fromdate+"','yyyy-mm-dd') and to_date('"+todate+"','yyyy-mm-dd')) where rownum < insertorder
";
learnner 2004-09-15
  • 打赏
  • 举报
回复

sql = "select userorder,insertdate from insert_tab where userorder=(select min(userorder) from insert_tab where (insertdate between fromdate and todate))+3"
gumplei 2004-09-15
  • 打赏
  • 举报
回复
昏,还没有人明白我的意思。
表是这样的:表名:a_tab
userorder insertdate
1 1989-06-03
2 1989-09-03
3 2001-02-03
4 2003-06-04
5 2004-02-05

用户输入查询条件:fromdate,todate,insertorder
比如fromdate=2001-01-03,todate=2005-06-07,insertorder=2
第一步:先通过查询在fromdate和todate之间的内容,即有
userorder insertdate
3 2001-02-03
4 2003-06-04
5 2004-02-05
假设这个表为b_tab
第二步:要查询b_tab中insertorder=2的纪录,即userorder=max(userorder)-min(userorder)+insertorder的纪录。即userorder=userorder=5-3+2=4
即结果为:
userorder insertdate
4 2003-06-04
关系我知道怎么做,只是sql语句不是很熟悉。急着要用,不知道怎么用。哎
kingfish 2004-09-15
  • 打赏
  • 举报
回复
如果要用sql做,试试
select * from yourtable where rownum<4
minus
select * from yourtable where rownum<3


或者在java用用Rowset的absolute(2)
gumplei 2004-09-15
  • 打赏
  • 举报
回复
高手都死到哪里了。。。。穷人分少难道你们就不理人了吗?
gumplei 2004-09-15
  • 打赏
  • 举报
回复
这样报错,说无效列名
gumplei 2004-09-15
  • 打赏
  • 举报
回复
是oracle。sql = "select userorder,insertdate from insert_tab where insertdate between fromdate and todate and rownum=3" 这样吗?
haroyy 2004-09-15
  • 打赏
  • 举报
回复
如果是Oracle的话就简单罗,直接以rownum = 3为条件
gumplei 2004-09-15
  • 打赏
  • 举报
回复
比如2004-03-06的userorder为8,2004-06-09的userorder为100,这个时间段之内有9,10,……,99这些用户。我现在需要从8,9,……,99,100中找到第3个即10这个用户。怎么办,帮忙写下具体的sql
kingfish 2004-09-15
  • 打赏
  • 举报
回复
搂主先自打吧

用and
gumplei 2004-09-15
  • 打赏
  • 举报
回复
具体一点说吧。我要查询2004-03-06到2004-06-09日第n位登陆网站的用户。
我的表中记录了从1999到2005年的所有用户登陆时间,并按照时间顺序排列在表中,即userorder为1,2,3,……
Tasia 2004-09-15
  • 打赏
  • 举报
回复
"某一位(假设为n)的纪录"是什么意思?
不明白你表达的意思。
gumplei 2004-09-15
  • 打赏
  • 举报
回复
up有分

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧