【发布时间】:2016-05-14 22:18:19
【问题描述】:
我编写了一个产生以下结果的查询。
查询看起来像
SELECT
rlrDivision.strLangue1 AS Division,
COUNT(p.pkPoste) AS NumbersToAdd,
SUM(p.iNbPostes) AS MoreNumbersToAdd
FROM
poste p
LEFT JOIN
lien_objet_ref_8 lienDiv ON lienDiv.fkObjet = p.pkPoste
LEFT JOIN
r_referentiel rrDivision ON rrDivision.pkReferentiel = lienDiv.fkReferentiel
LEFT JOIN
r_libelle_ref rlrDivision ON rlrDivision.pkLibelleRef = rrDivision.fkLib1
LEFT JOIN
lien_objet_liste_3 lol3 ON lol3.fkObjet = p.pkPoste AND lol3.`strContexte`='descriptif/type_contrat'
LEFT JOIN
r_liste_editable rle ON lol3.fkListe = rle.pkListeEditable
LEFT JOIN
r_libelle_ref rlr ON rle.fkLibelleRef = rlr.pkLibelleRef
WHERE
p.pkPoste <> 1
AND p.iSuppr <> 1
AND p.iDernierEtatPoste = 2
AND rlr.strLangue1 LIKE 'Full-time%'
GROUP BY
rlrDivision.strLangue1, p.`iNbPostes` WITH ROLLUP
这几乎产生了正确的结果。但是,我希望每个分区只有一行,而我没有 ROLLUP。但是,我没有所需的总数。所以基本上我想要下面的内容,但在 NumbersToAdd 和 MoreNumbersToAdd 上有另一行总计。
【问题讨论】:
-
什么是 RDBMS?是否支持
ROLLUP? -
@GordonLinoff 抱歉,我更改了别名以便现在更有意义。
-
我认为您应该将其存储在临时表或变量表中,然后执行两个查询,一个是简单的
SELECT,另一个是这些字段的SUM()。