MySQL - 从第1行减去第2行,其中列是相同的

时间:2013-10-03 19:21:44

标签: mysql function

我正在创建一个临时表,它目前为今天和昨天提取值。临时表如下所示:

|DateTime                |company 1 |company 2 |
+------------------------+----------------------+
|2013-10-03 14:40:00     | 182475   |  110271  |
|2013-10-02 14:10:00     | 182086   |  110261  |

我需要做的是选择今天的值,以及今天和昨天之间的差异。根据以上数据,输出结果如下:

Company 1   | Company 1 difference | Company 2|  Company 2 difference
+-----------+----------------------+----------+--------------------------
182475      |         389          | 110271   |          10

我无法弄清楚如何指定要从哪一行中减去哪一行,因为没有自动增量字段,而且DateTime字段每天会略有不同。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

SELECT today.DateTime as DateTime
  , today.Company1, today.Company1 - COALESCE(yesterday.Company1,0) AS Company1Diff
  , today.Company2, today.Company2 - COALESCE(yesterday.Company2,0) AS Company2Diff
FROM tbl AS today
LEFT JOIN tbl AS yesterday
ON DATEDIFF(today.DateTime, yesterday.DateTime) = 1
ORDER BY today.DateTime ASC