2012-02-22 53 views
1

我有一个查询至极给我一份有总计一栏,查询看起来是这样的:琛子查询与和

SELECT SUM(BoekRegelBedrag) AS total, 
    BoekRegelPeriode, BoekRegelGrootboekNr, 
    BaOmschrijving, BaSoort 
FROM BoekstukRegels 
LEFT JOIN ( 
     SELECT BaOmschrijving, BaSoort, BaGbNumber 
     FROM balansen 
     WHERE BauserId = 45 
     GROUP BY BaGbNumber 
    ) tbl ON BoekRegelGrootboekNr = BaGbNumber 
WHERE BoekregelUserId = 45 
    AND BoekRegelPeriode BETWEEN '201201' AND '201212' 
    AND BaSoort = 2 
GROUP BY BoekRegelGrootboekNr 

我现在想的是要总结指定查询的那些结果。

有人知道如何做到这一点?

在此先感谢

回答

2

WITH ROLLUP改性剂添加到您的现有查询。这将返回一个额外的行,在您的常规列中包含NULL值,并在您的total列中显示所需的总计值。

SELECT SUM(BoekRegelBedrag) AS total, BoekRegelPeriode, BoekRegelGrootboekNr, BaOmschrijving, BaSoort 
    FROM BoekstukRegels 
     LEFT JOIN (SELECT BaOmschrijving, BaSoort, BaGbNumber 
         FROM balansen 
         WHERE BauserId = 45 
         GROUP BY BaGbNumber)tbl 
      ON BoekRegelGrootboekNr = BaGbNumber 
    WHERE BoekregelUserId = 45 
     AND BoekRegelPeriode BETWEEN '201201' AND '201212' 
     AND BaSoort = 2 
    GROUP BY BoekRegelGrootboekNr 
    WITH ROLLUP 
+0

哇,这是诀窍。谢谢! – 2012-02-22 14:26:20

+0

我的表格中有一些负值,是否可以在总和之前使这些值为正值? – 2012-02-22 14:27:36

+1

@LeonvanderVeen您可以使用[ABS](http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_abs)函数返回绝对值:'SELECT SUM(ABS( BoekRegelBedrag))总共......' – 2012-02-22 14:30:15