免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1749 | 回复: 8
打印 上一主题 下一主题

用SQL怎么写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-25 10:05 |只看该作者 |倒序浏览
如何用sql语句写:只取符合条件记录的最后一条?
例如:符合条件的有10条,排序后只取最后一条。

论坛徽章:
0
2 [报告]
发表于 2005-05-25 10:21 |只看该作者

用SQL怎么写?

你可以用olap函数中的row_number ()对记录进行编号,取最大的编号记录就是了.

详情请参考精典文章:
http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/0110lyle/0110lyle.html

论坛徽章:
0
3 [报告]
发表于 2005-05-25 10:44 |只看该作者

用SQL怎么写?

举例说明好不,我很笨那,

论坛徽章:
0
4 [报告]
发表于 2005-05-25 10:55 |只看该作者

用SQL怎么写?

select row_number() over (order by salary )as rownumber,id,name
from staff order by rownumber desc fetch first 1 row only;

应该可以满足你的要求.

论坛徽章:
0
5 [报告]
发表于 2005-05-25 11:35 |只看该作者

用SQL怎么写?

原帖由 "daliwa" 发表:
select row_number() over (order by salary )as rownumber,id,name
from staff order by rownumber desc fetch first 1 row only;

应该可以满足你的要求.


如果用row_number,就不需要用fetch子句。加上条件where rownumber=n就可以了。
如果用fetch,就不需要用row_number。
觉得一般不会按行号排序的。

论坛徽章:
0
6 [报告]
发表于 2005-05-25 14:38 |只看该作者

用SQL怎么写?

在delphi中写sql:

with temp1 (occurtime,ucardnum,amount,consume) as (select max(occurtime) as occurtime,ucardnum,amount,consume from consumetable where occurtime>;'2005-05-01' and occurtime<'2005-05-25' and ucardnum in (select userid from userinfotable) group by ucardnum) select * from temp1


总报错:incorrect syntax near the keyword 'with'


不知道怎么回事???

论坛徽章:
0
7 [报告]
发表于 2005-05-25 15:58 |只看该作者

用SQL怎么写?

可能不支持这样写吧。
那就用查询嵌套好了。

论坛徽章:
0
8 [报告]
发表于 2005-05-25 17:22 |只看该作者

用SQL怎么写?

呵呵,杀鸡用牛刀了
(为什么偶总喜欢用复杂的方法解决问题呢,笨死!)

论坛徽章:
0
9 [报告]
发表于 2005-05-25 17:24 |只看该作者

用SQL怎么写?

原帖由 "applepig" 发表:
在delphi中写sql:

with temp1 (occurtime,ucardnum,amount,consume) as (select max(occurtime) as occurtime,ucardnum,amount,consume from consumetable where occurtime>;'2005-05-01' and occurtime<'2..........


你的SQL明显有错:
select max(occurtime) as occurtime,ucardnum,amount,consume from consumetable where occurtime>;'2005-05-01' and occurtime<'2005-05-25' and ucardnum in (select userid from userinfotable) group by ucardnum)

你在select 中和group by 中指定的列数不相同
只能group by ucardnum,amount,consume .
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP