Sql 选择不同的案例计数

Sql 选择不同的案例计数,sql,sql-server-2012,Sql,Sql Server 2012,我是SQL新手,尝试在数据集中返回一列,仅当另一列满足条件时,该列才对1列的总数进行计数和/或求和 我的Select子句中有以下内容,但由于我稍后在查询中对数据进行了分组,并且没有输出G.[Component ID],所以我无法计算该行(并且不想这样做,因为它不会按我想要的方式对数据进行分组) 有办法解决这个问题吗 (我正在使用Microsoft SQL) 这就是我的全部陈述 SELECT a.Apl_Appeal_ID AS [Appeal ID], A.Apl_Description AS

我是SQL新手,尝试在数据集中返回一列,仅当另一列满足条件时,该列才对1列的总数进行计数和/或求和

我的Select子句中有以下内容,但由于我稍后在查询中对数据进行了分组,并且没有输出G.[Component ID],所以我无法计算该行(并且不想这样做,因为它不会按我想要的方式对数据进行分组)

有办法解决这个问题吗

(我正在使用Microsoft SQL)


这就是我的全部陈述

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

我想您希望将
大小写
表达式作为
计数(DISTINCT)
的参数:


我想您希望将
大小写
表达式作为
计数(DISTINCT)
的参数:

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
COUNT(DISTINCT CASE WHEN G.[Constituent ID] IN ('2014', '2015', '2016', '2017', '2018')
               THEN G.[Gift Import ID]
      END) AS [COUNT of Gifts Anonymous]