【发布时间】:2021-07-14 16:09:48
【问题描述】:
下午好,我在 SQL 中有以下输出,并且希望为每个添加的代码添加第三行:
我想添加一个总行如下:
提前谢谢你。如果您需要代码,我可以稍后提供。
DECLARE @FY_Ending INT
SET @FY_Ending = 2020
SELECT
CAST(DSS_CORPORATE.DBO.ODS_LOCAL_AUTHORITY_CODES.LA_CODE AS INT) AS CASSR_CODE
INTO
#MAPPING
FROM
DSS_CORPORATE.DBO.ODS_LOCAL_AUTHORITY_CODES
WHERE
ORGANISATION_SUBTYPE_CODE IN ('A','E','H','J')
AND BUSINESS_END_DATE IS NULL
AND HIGH_LEVEL_HA_CODE <> 'Q99'
AND LA_CODE <> '203' and LA_CODE <> '612' and LA_CODE <> '810' and LA_CODE <> '811'
AND ((@FY_Ending < 2020 and LA_Code not in (738)) or (@FY_Ending >= 2020 and LA_Code not in (810,811)))
SELECT
CASE
WHEN DATA.CASSR_CODE IS NULL THEN #MAPPING.CASSR_CODE
ELSE DATA.CASSR_CODE
END AS 'CASSR_CODE',
DATA.AgeBand_Key,
SOCC_SALT.IC.V3_DIM_AGEBAND.AgeBand,
DATA.COUNT
FROM
(
SELECT
SOCC_SALT.IC.V3_SOCC_SALT_FACT.CASSR_CODE,
SOCC_SALT.IC.V3_SOCC_SALT_FACT.ItemType,
SOCC_SALT.IC.V3_SOCC_SALT_FACT.AgeBand_Key,
SUM(SOCC_SALT.IC.V3_SOCC_SALT_FACT.ItemValue) AS 'COUNT'
FROM
SOCC_SALT.IC.V3_SOCC_SALT_FACT
WHERE
SOCC_SALT.IC.V3_SOCC_SALT_FACT.FY_Ending = @FY_Ending
AND SOCC_SALT.IC.V3_SOCC_SALT_FACT.ClientType_Key = 1
AND SOCC_SALT.IC.V3_SOCC_SALT_FACT.AgeBand_Key IN (2,3)
AND SOCC_SALT.IC.V3_SOCC_SALT_FACT.SequelToSupportRequest_Key IS NOT NULL
AND SOCC_SALT.IC.V3_SOCC_SALT_FACT.SequelToSupportRequest_Key <> 7
GROUP BY
SOCC_SALT.IC.V3_SOCC_SALT_FACT.CASSR_CODE,
SOCC_SALT.IC.V3_SOCC_SALT_FACT.ItemType,
SOCC_SALT.IC.V3_SOCC_SALT_FACT.AgeBand_Key) DATA
LEFT JOIN SOCC_SALT.IC.V3_DIM_AGEBAND ON DATA.AgeBand_Key = SOCC_SALT.IC.V3_DIM_AGEBAND.AgeBand_KEY
FULL OUTER JOIN #MAPPING ON DATA.CASSR_CODE = #MAPPING.CASSR_CODE
Order by 1,4 asc
DROP TABLE #MAPPING
问候, 安德鲁
【问题讨论】:
-
用您正在使用的数据库标记您的问题。您还可以包含生成这些结果的查询。
-
在 Oracle 或 MSSQL 中,您也可以使用
group By Grouping sets。
标签: sql database sum case partitioning