MySql SUM(子查询)

时间:2018-06-26 09:59:06

标签: mysql

我试图选择一个单字段子查询的总和,但是找不到任何好的语法。

建议的解决方案here对我不起作用,因为我的子查询需要GROUP BY以避免重复输入。

这是子查询(简化了,因为它很长):

SELECT montant FROM table1 
JOIN flag ON table1.flag = flag.id
JOIN historique ON historique.bu_id = flag.bu_id 
WHERE historique.com_id = '144'
AND table1.date > '$aDate' AND table1.date_end < '$anotherDate'
GROUP BY table1.id

我想要的是:

SELECT SUM(Subquery) AS Total

但是它不能按原样工作,如果我不使用GROUP BY语句,它将多次计数table1.montant

编辑:这是带有COUNT(id)的完整子查询的屏幕截图,以向您展示我的意思:

2 个答案:

答案 0 :(得分:0)

如果您需要一个总和,则应仅使用

SELECT sum(montant) FROM table1 
JOIN flag ON table1.flag = flag.id
JOIN historique ON historique.bu_id = flag.bu_id 
WHERE historique.com_id = '144'
AND table1.date > '$aDate' AND table1.date_end < '$anotherDate'

避免按

分组

答案 1 :(得分:0)

我发现了问题:我的JOINs条件不好,我需要在table1和historique之间进行比较。现在没有重复的行