Получить разницу двух чисел в двух строках в таблице MySQL - PullRequest
0 голосов
/ 09 ноября 2018

Это мой стол parameters_info.

name                     | value
---------------------------------
fee for normal scan      |20
fee for especial scan    |500

Я хочу получить значение (плата за специальное сканирование - плата за обычное сканирование), равное 480;

Как мне добиться этого с помощью MySQL?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Вы можете использовать условное агрегирование, используя функцию Sum(). может быть более эффективным , чем использование нескольких некоррелированных подзапросов:

SELECT SUM(CASE name 
                WHEN 'fee for especial scan' THEN value
                WHEN 'fee for normal scan' THEN -1*value
                ELSE 0
           END)
FROM your_table
0 голосов
/ 09 ноября 2018

Вы можете просто сделать это:

SELECT (SELECT value FROM t WHERE name = 'fee for especial scan') - 
       (SELECT value FROM t WHERE name = 'fee for normal scan')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...