MYSQL Присоединиться к той же таблице, объединить пустые поля и сумму - PullRequest
0 голосов
/ 19 октября 2018

У меня есть две строки, которые принадлежат одному и тому же заказу на покупку.Как вы можете видеть ниже, комиссия и sales_value не объединяются в один ряд.Эти данные мы получаем извне и без возможности их изменить.

Я уже около недели пытаюсь получить правильный запрос, к сожалению, не с результатами, которые я ожидал

+--------+-------------+------------+-------+
|   PO   | sales_value | commission | total |
+--------+-------------+------------+-------+
| XXXXXX |             |      -1.60 | -1.60 |
| XXXXXX |       28.89 |            | 28.89 |
+--------+-------------+------------+-------+

Iпопытайтесь создать запрос, чтобы получить следующий результат:

+--------+-------------+------------+-------+
|   PO   | sales_value | commission | total |
+--------+-------------+------------+-------+
| XXXXXX |       28.89 |      -1.60 | 27.29 |
+--------+-------------+------------+-------+

Он должен переместить комиссию в пустое поле комиссии во второй строке, и он должен суммировать общие суммы вместе.Таким образом, мы могли бы правильно использовать информацию.

Я перепробовал много возможностей вместе с функцией соединения MySQL.к сожалению, я не могу показать свои попытки, потому что я не сохранил тестовые запросы.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018
select po,
sum(ifnull(sales_value,0)) as sales_value,
sum(ifnull(commission,0)) as commission,
sum(ifnull(total,0)) as total
 from
#yourtable
group by po
0 голосов
/ 19 октября 2018

Вам нужно использовать GROUP BY с агрегацией SUM(), чтобы объединить все строки для конкретного заказа в один:

SELECT
  PO,
  SUM(sales_value) AS sales_value, 
  SUM(commission) AS commission, 
  SUM(sales_value) + SUM(commission) AS total
FROM your_table_name -- <- use your table name here
GROUP BY PO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...