求助 实现同一字段两行相减的SQL写法

[复制链接]
查看11 | 回复6 | 2010-10-8 09:28:51 | 显示全部楼层 |阅读模式
版本是mysql 4.0.27
+------------+--------+---------------+--------+----------+
| chk_time | dbname | ip
| failed | recharge |
+------------+--------+---------------+--------+----------+
| 2010-09-27 | dx253| 121.9.222.253 |0 | 18 |
| 2010-09-26 | dx253| 121.9.222.253 |0 | 17 |
| 2010-09-25 | dx253| 121.9.222.253 |0 | 16 |
+------------+--------+---------------+--------+----------+
如上表,我要得到27号的recharge减去26号recharge,SQL应当如何写?
望高手指教,十分感谢
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
select r1-r2 from (
select a.recharge r1 , b.recharge r2 from t a, t b where a.chk_time=27 and b.chk_time=26
) t
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
谢谢版主的回答
小弟愚钝 不知道是不是我理解得不对 还是报了错 万望指教
select r1-r2 from (select a.recharge r1 , b.recharge r2 from tablename a, tablename b where a.chk_time='2010-09-27' and b.chk_time='2010-09-26') tablename
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
4.0的版本,不支持子查询的....
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
SELECT M.recharge-N.recharge AS recharge
FROM tablename M INNER JOIN tablename N ON M.chk_time=DATE_ADD(N.chk_time,INTERVAL +1 DAY);

DATE_ADD函数不知道此版本是否支持,实在太久远的版本,以前也用得少.....
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
select a.recharge - b.recharge
from t a, t b
where a.chk_time=27 and b.chk_time=26;
可以否
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
谢谢版主的回答 貌似4版本很多函数都没有的
谢谢楼上 方法可行



感谢所有帮忙回答的大大
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行