小春网

 找回密码
 注册账号
查看: 1987|回复: 14
收起左侧

[IT 交流] sql怎样能得到同一列中后一项和前一项的差?

[复制链接]
发表于 2012-5-23 19:18:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

x
本帖最后由 憨吃迷糊睡 于 2012-5-23 23:39 编辑

一个数据库a,有一列shu
+----+
shu
+----+
2
4
5
6
3
1
+----+
怎样才能得到这一列中后项减前项的结果呢,也就是说我想得到的是2(=2-0),2(=4-2),1(=5-4),1(=6-5),-3(=3-6),-2(=1-3)
发表于 2012-5-23 20:59:39 | 显示全部楼层
记住数据库只是存放数据的.
回复

使用道具 举报

发表于 2012-5-23 23:34:50 | 显示全部楼层
MySQL.jpg

DROP TABLE IF EXISTS `test`.`biao`;
CREATE TABLE `test`.`biao` (`rownum` int,`shu` int);
INSERT INTO `test`.`biao`(`rownum`,`shu`)VALUES(1,2),(2,4),(3,5),(4,6),(5,3),(6,1);
SET @currentrownum:=1;
SELECT * FROM biao b;
SELECT shu - ifnull((SELECT shu FROM `test`.`biao` WHERE rownum=@currentrownum-1),0),
(@currentrownum:=@currentrownum+1)-1
FROM `test`.`biao`;

迷糊提示一种解法,不见得是最佳答案,
应该能够正常运行,执行结果请参考上面的图片

环境MySQL5.5
如果可以使用SQLSERVER等支持取得当前行的函数的数据库,解法会简单很多

推荐阅读:
http://blog.csdn.net/ACMAIN_CHM/article/details/4095531


回复

使用道具 举报

发表于 2012-5-24 00:16:17 | 显示全部楼层
厉害,我只想到用rownum,您都弄出来了
回复

使用道具 举报

头像被屏蔽
发表于 2012-5-24 00:31:40 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2012-5-24 00:59:50 | 显示全部楼层
每行加个ID(主键)的话,比较容易弄吧
ID   shu
1    2
2    4
3    5
4    6
5    3
6    1

select a.id ,(b.shu-nvl(a.shu,0)) as  from tables a,tables b
where a.id=(b.id-1)(+)
order by a.id

※机器升Win8,数据库没有了。纯猜想~
回复

使用道具 举报

 楼主| 发表于 2012-5-24 10:56:08 | 显示全部楼层
还没看答案 不过先谢谢大家
回复

使用道具 举报

 楼主| 发表于 2012-5-24 11:57:52 | 显示全部楼层
解决了 谢谢迷糊哥
回复

使用道具 举报

 楼主| 发表于 2012-5-24 11:58:14 | 显示全部楼层
憨吃迷糊睡 发表于 2012-5-23 23:34
DROP TABLE IF EXISTS `test`.`biao`;
CREATE TABLE `test`.`biao` (`rownum` int,`shu` int);
INSERT IN ...

解决了 谢谢迷糊哥

点评

不客气,O(∩_∩)O~  发表于 2012-5-24 22:04
回复

使用道具 举报

发表于 2012-5-24 22:04:05 | 显示全部楼层
coka2cora 发表于 2012-5-24 00:31
迷糊哥有没有用过SQLyog,有免费版,相当地好用

SQLyog.jpg

以前没用过,去官网上下载了一个试用版,确实很好用
过了30天试用期后还能继续使用基本功能吗?

借帖请教一个问题:
迷糊会在MySQL 5.5 Command Line Client里面批量的执行SQL语句

但是平常仅执行简单的查询时,使用下面这个GUI工具
MySQL Query Browser好像不支持批量的执行SQL语句

每回都是一行一行的点击,累够呛
有什么办法能在GUI工具中也批量的执行SQL语句吗?
多谢了


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小春网
常务客服微信
微信订阅号
手机客户端
扫一扫,查看更方便! 快速回复 返回顶部 返回列表