我想在一张表格中显示学生的所有付款。
学生可以属于一门以上的课程,所以我需要知道每一门课程的付款总和。

I've tried this:

SELECT      usuarios.userID, usuarios.userEmail, usuarios.docVerificada,
            pagos.cursoID, pagos.pagoMonto,
            SUM(pagos.pagoMonto)

FROM usuarios LEFT JOIN pagos
ON usuarios.userID = pagos.userID

WHERE pagos.estadoPago = 1

GROUP BY usuarios.userEmail


但是它输出所有付款,每行一次,但是我想根据它们的cursoID进行分组。

这些是涉及的表:

CREATE TABLE pagos (
    pagoID int unsigned not null auto_increment primary key,
    userID int not null,
    cursoID int null,
    estadoPago int(1) not null DEFAULT '0'
    pagoMonto int null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE usuarios(
    userID int unsigned not null auto_increment primary key,
    userEmail char(50) null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;


这是我得到的实际输出:
mysql - 如何对与特定ID相关的mySQL中的sum()值?-LMLPHP

这些是没有任何分组或总和的结果:
mysql - 如何对与特定ID相关的mySQL中的sum()值?-LMLPHP

预期结果将是:


  用户ID 16-cursoID 15-付款总数23
  
  UserID 16-cursoID 16-总共付款77(总和为24,
  26和27)


等等...

最佳答案

您应在查询的pagos.cursoID中包括Group By

SELECT
    usuarios.userID, usuarios.userEmail, usuarios.docVerificada,
    pagos.cursoID, pagos.pagoMonto, SUM(pagos.pagoMonto) as Total
FROM
   usuarios
INNER JOIN
   pagos
ON
   usuarios.userID = pagos.userID
WHERE
    pagos.estadoPago = 1
GROUP BY
    usuarios.userID, pagos.cursoID

关于mysql - 如何对与特定ID相关的mySQL中的sum()值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38945215/

10-09 18:27