-3

さまざまな発電所のメーター測定値を格納する次の 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
4

2 に答える 2

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 を検索して、人々が使用する他の方法を見つけることができます。

于 2013-06-09T17:01:24.307 に答える
0

行の値に基づいて動的な列を作成することはできないと思います。データベース層ではなくアプリケーション層で行うべきだと思います。

この投稿を参照してください: mysql select dynamic row values as column names, another column as value

于 2013-06-09T16:59:49.243 に答える