2012-01-06 2 views
17

В принципе, я пытаюсь следующее:SUM (подзапрос) в MYSQL

SELECT m.col1, SUM(SELECT col5 FROM table WHERE col2 = m.col1) 
FROM table AS m 

Это не похоже на работу. Есть ли решение?

ответ

23

Почему бы вам не сделать это:

SELECT m.col1, (SELECT SUM(col5) FROM table WHERE col2 = m.col1) 
FROM table AS m 
+0

Спасибо, это работает для меня, хорошая работа. , –

4

да - использование присоединяется

SELECT m.col1, SUM(j.col5) FROM table AS m 
     JOIN table AS j ON j.col2 = m.col1 GROUP BY m.col1 
2

Sum используется внутри второго выбора, где мы хотим суммировать столбец. col2 может быть неоднозначным столбцом, если такой столбец существует в таблице m.

SELECT 
    m.col1, 
    (SELECT SUM(t.col5) FROM table AS t WHERE t.col2 = m.col1) AS sumcol 
FROM table AS m 
Смежные вопросы