MYSQL сумма поля в зависимости от значения другого поля - PullRequest
0 голосов
/ 16 января 2012

Я пытаюсь создать поле как

1.сумма в поле покупок, где значение типа покупок = НДС как покупки_Ват

2.сумма поле покупки, в котором значение типа покупки = освобождено как покупки_пакета

пример исходной таблицы и таблицы результатов в прикрепленном изображении

пример таблицы

Ответы [ 4 ]

1 голос
/ 16 января 2012

Как насчет этого?

SUM(CASE WHEN purchases_type='vat' THEN Purchases ELSE 0 END) AS purchases_vat,
SUM(CASE WHEN purchases_type='exempt' THEN Purchases ELSE 0 END) AS purchases_exempt,
0 голосов
/ 16 января 2012
select 
    sum(case when purchase_type = 'vat4' then purchases else 0 end) as purchase_vat4,
    sum(case when purchase_type = 'exempt' then purchases else 0 end) as purchase_exempt
from source_table
0 голосов
/ 16 января 2012

Это даст вам сумму покупок для «НДС». Вы также можете сделать это для «освобожденного» * ​​1001 *

SELECT `s` FROM (SELECT SUM(purchases), type FROM my_table GROUP BY type) as T1 WHERE T1.type = 'vat
0 голосов
/ 16 января 2012

Двухрядная версия:

SELECT 'vat', SUM(purchases)
FROM source_table
WHERE purchase_type = 'vat4'

UNION

SELECT 'exempt', SUM(purchases)
FROM source_table
WHERE purchase_type = 'exempt';

Одна строка:

SELECT 
    (SELECT sum(purchases) from source_table where purchase_type = 'vat4') purchase_vat,
    (SELECT sum(purchases) from source_table where purchase_type = 'exempt') purchase_exempt;
...