简体   繁体   中英

Sum Group By Column

I have a column (PL.UNITS) that I need to Total at the bottom of the results of a query, is it possible to sum PL.UNITS that is already summed?

Please see query below.

SELECT ID.DUEDATE AS [DUE DATE], CD.RENEWALDATE, CD.RENEWALSTATUS, CD.CONTRACTNUMBER, L.LOCNAME, L.LOCADDRESS1, L.LOCADDRESS2, L.LOCADDRESS3, L.LOCADDRESS4, L.POSTCODE, SUM(PL.UNITS) AS UNITS from CLIENTDETAILS CD 

INNER JOIN LOCATIONS L ON CD.CLIENTNUMBER = L.CLIENTNUMBER 
INNER JOIN ITEMDETAILS ID ON L.LOCNUMBER = ID.LOCNUMBER
INNER JOIN PLANT PL ON ID.CODE = PL.CODE

WHERE L.OWNER = 210 and L.STATUSLIVE = 1 and ID.DUEDATE > '01/01/2017' 

GROUP BY ID.DUEDATE, CD.RENEWALDATE, CD.RENEWALSTATUS, CD.CONTRACTNUMBER, L.LOCNAME, L.LOCADDRESS1, L.LOCADDRESS2, L.LOCADDRESS3, L.LOCADDRESS4, L.POSTCODE

It's probably best to do this sort of thing in front end development. Nevertheless, here is an example (quick and dirty, but shows the idea) for sql-server:

SELECT  COALESCE(a.id, 'total') AS id
,       SUM(a.thing) AS thing_summed
FROM    (
            SELECT '1' id
            ,   1 thing
            UNION
            SELECT '2'
            ,   2 thing
            UNION
            SELECT '1'
            ,   3 thing
        ) AS a
GROUP BY ROLLUP(a.id) 

Result:

+-------+--------------+
|  id   | thing_summed |
+-------+--------------+
| 1     |            4 |
| 2     |            2 |
| total |            6 |
+-------+--------------+

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM