【发布时间】:2016-12-21 01:50:04
【问题描述】:
我想在一个表格中显示学生支付的所有款项。 学生可以参加多个课程,因此我需要知道属于每门课程的付款总和。
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;
预期的结果是:
UserID 16 -- cursoID 15 -- 支付总额 23
UserID 16 -- cursoID 16 -- 付款总计 77(总和应该只有 24, 26和27)
等等……
【问题讨论】:
-
I want to group them according to their cursoID-- 你试过在group by子句中添加cursoID吗?