mysql - 在两行上执行加法,减法等

时间:2013-06-09 16:57:11

标签: mysql sql

我有一个以下的Mysql表,用于存储不同发电站的仪表读数。

Date, station_name, reading
2013-05-06, ABC, 102
2013-05-06, PQR, 122

我想要一个SQL查询,其中包含特定日期的结果。

Date, ABC, PQR, ABC-PQR
2013-05-06,102,122,-20

2 个答案:

答案 0 :(得分:1)

您可以使用CASE语句:

SELECT Date
      , SUM(CASE WHEN station_name = 'ABC' THEN reading ELSE 0 END) as ABC
      , SUM(CASE WHEN station_name = 'PQR' THEN reading ELSE 0 END) as PQR
      , SUM(CASE WHEN station_name = 'ABC' THEN reading ELSE 0 END) - SUM(CASE WHEN station_name = 'PQR' THEN reading ELSE 0 END) as 'ABC-PQR'
FROM table
WHERE Date = '20130506'
GROUP BY Date

您可以搜索MySQL PIVOT以找出人们使用的其他方法。

答案 1 :(得分:0)

我认为不可能根据行的值来执行动态列。我相信你应该在应用层而不是数据库层中完成它。

请参阅此帖:mysql select dynamic row values as column names, another column as value