MySQL СУММА и возвращает результаты нескольких других строк - PullRequest
1 голос
/ 28 января 2020

У меня есть следующие MySQL Таблицы:

TABLE: reg_users

-----------------
  id | username 
-----------------
  1     a
  2     b
  3     c

TABLE: bill

-----------------------
  id | m12     | p12 |
-----------------------
  1     13.69     1
  2     0.00      1
  3    269.89     1
SELECT b.p12 AS payed, 
       d.id, 
       b.m12 AS prev_month, 
       b.m12 AS curr_month, 
       username, 
       SUM(b.m12) AS total_prev_month 
FROM `reg_users` d 
LEFT JOIN `bill` b ON d.id = b.id 
ORDER BY d.`id` DESC;

Я получаю только один результат строки и нужно получить все результаты (3 строки результата с total_prev_month SUMMED вместе для каждой строки, поэтому в этой строке должны быть значения для каждой строки 283.58.

Используя GROUP BY, я получаю правильное значение total_prev_month, но я получаю только одну строку результатов ... и мне нужно в этом примере результаты 3 строки, как:

------------------------------------------------
  payed | id     | username |  total_prev_month
------------------------------------------------
  1        1         a              283.58
  1        2         b              283.58
  1        3         c              283.58

1 Ответ

1 голос
/ 28 января 2020

Просто используйте подзапрос в списке SELECT:

SELECT b.p12 AS payed, d.id, username, 
       (SELECT ROUND(SUM(m12),2) FROM `bill` ) AS total_prev_month 
  FROM `reg_users` d 
  JOIN `bill` b ON d.id = b.id 
 ORDER BY d.id

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...