我是SQL的新手,仅当另一列满足条件时,才尝试返回对1列的总数进行计数和/或求和的数据集中的列
我在Select子句中具有以下内容,但是当我稍后在查询中对数据进行分组并且不输出G时。[成分ID]我无法计算该行(并且也不想这样做)按我想要的方式对数据进行分组)。
有没有办法解决这个问题?
(我正在使用Microsoft SQL)
SELECT
(Case WHEN G.[Constituent ID] IN ('2014', '2015', '2016', '2017', '2018') THEN COUNT(DISTINCT G.[Gift Import ID])) AS [COUNT of Gifts Anonymous]
这是我的全部声明
SELECT
a.Apl_Appeal_ID AS [Appeal ID],
A.Apl_Description AS [Appeal Description],
A.Apl_Start_date AS [Appeal Start Date],
A.Apl_Campaign_ID AS [Campaign ID],
SUM(A.Apl_No_solicited) AS [Number Solicited],
SUM(A.Apl_ApE_1_01_Amount) AS [Appeal Expenses],
RIGHT(A.Apl_Appeal_ID,1) AS [PackCode],
A.Apl_AtrCat_1_01_Description AS [Gift Classification],
A.Apl_AtrCat_2_01_Description AS [Channel],
A.Apl_AtrCat_3_01_Description AS [MD/Corp],
A.Apl_AtrCat_4_01_Description AS [Purpose],
A.Apl_AtrCat_5_01_Description AS [Campaign],
A.Apl_AtrCat_6_01_Description AS [Wave],
A.Apl_AtrCat_7_01_Description AS [Supplier],
A.Apl_AtrCat_8_01_Description AS [Timing],
A.Apl_AtrCat_9_01_Description AS [Year],
COUNT(DISTINCT G.[Constituent ID]) AS [COUNT of Donors],
COUNT(DISTINCT G.[Gift Import ID]) AS [COUNT of Gifts],
SUM(G.[Gift Amount]) AS [Income],
(Case WHEN G.[Constituent ID] IN ('2014', '2015', '2016', '2017', '2018') THEN COUNT(DISTINCT G.[Gift Import ID])) AS [COUNT of Gifts Anonymous]
FROM dbo.[FHF_Appeals] A
LEFT OUTER JOIN dbo.FHF_Gifts_ExcludingRG G
ON A.Apl_Appeal_ID = G.[Appeal List]
WHERE (a.Apl_Campaign_ID = '1002100-Acquisition' AND A.Apl_AtrCat_2_01_Description LIKE 'Direct_Mail')
AND A.Apl_Start_date >= '1/1/2014'
GROUP BY
A.Apl_Appeal_ID,
A.Apl_Description,
A.Apl_Start_date,
A.Apl_Campaign_ID,
A.Apl_AtrCat_1_01_Description,
A.Apl_AtrCat_2_01_Description,
A.Apl_AtrCat_3_01_Description,
A.Apl_AtrCat_4_01_Description,
A.Apl_AtrCat_5_01_Description,
A.Apl_AtrCat_6_01_Description,
A.Apl_AtrCat_7_01_Description,
A.Apl_AtrCat_8_01_Description,
A.Apl_AtrCat_9_01_Description
答案 0 :(得分:2)
我认为您希望将CASE
表达式用作COUNT(DISTINCT)
的参数:
COUNT(DISTINCT CASE WHEN G.[Constituent ID] IN ('2014', '2015', '2016', '2017', '2018')
THEN G.[Gift Import ID]
END) AS [COUNT of Gifts Anonymous]