我有以下查询:
SELECT DISTINCT l.id,
cl.id,
MONTHNAME(l.date) as month,
YEAR(l.date) as year,
SUM(l.hourlyPrice*(TIME_TO_SEC(TIMEDIFF(l.end, l.start)))/3600) as total
FROM Lesson l LEFT JOIN l.students s
JOIN s.client cl
GROUP BY cl.id, month, year
问题在于,每个课程都可以有多个学生,每个课程相关联,它会增加课程价格(即课程值为100,其中1个学生增加100个,但3个学生增加300个而不是100个),所以我想我把DISTINCT放在了错误的位置。有什么想法吗?
编辑:
找到了这个:http://www.sqlteam.com/article/how-to-use-group-by-with-distinct-aggregates-and-derived-tables。非常相似的SQL示例,但没有运气应用它。