SQL分组和总计

时间:2016-03-23 12:19:10

标签: sql-server sql-server-2008 grouping totals

我的SQL人正在度假。我知道这很危险。我有桌子,加入后会给我分区域和区域分解的各种位置以及潜在的钱和获取的钱。感兴趣的列是区域/区域/潜在/已实现。大约12个顶级区域和80个区域

我如何查询数据,以便在每次更改区域时获得休息时间,其潜在总数和已实现总数以及每个区域更改时的潜在总数和区域总数?

类似的东西:

Area1     District1     500    200
Area1     District1     200    null
Total Row               700    200
Area1     District2     200    200
Area1     District2     null   null
Total Row               200    200
Area Total              900    400
Area2     District3......etc.........

编辑代码。以下是我到目前为止的情况,如果每次AreaID或DistrictID更改时我都可以获得总数,我想我可以得到其余的

DECLARE @FiscalYear INT 
SELECT  @FiscalYear = 2014

SELECT     tblFacilities.FacilityID, 
        tblAreas.AreaID,
        tblFacilities.DistrictID, 
        tblFacilities.UnitName, 
        tblDistricts.DistrictName, 
        tblAreas.AreaName,
        TotalSavings = (SELECT TotalSavings FROM ufn_RainbowTCReductionStrategies(tblFacilities.FacilityID, @FiscalYear))

FROM       tblFacilities INNER JOIN tblDistricts ON tblFacilities.DistrictID = tblDistricts.DistrictID 
        INNER JOIN tblAreas ON tblDistricts.AreaID = tblAreas.AreaID

1 个答案:

答案 0 :(得分:5)

SELECT
    Area,
    District,
    SUM(Potential),
    SUM(Realized)
FROM
    table
GROUP BY
    Area,
    District
WITH ROLLUP;