我的原始报告返回帐户ABC的3条记录,1条具有已批准状态,2条具有暂停状态。这些行的唯一区别是状态和帐单编号。所有其他数据都是相同的。
我正在尝试创建此报告的变体,该变体将为帐户ABC返回1行,其中一列显示已批准帐户的计数,另一列显示已暂停帐户的计数。
在新报告中,会有一个值为1的Approved Accounts列和一个值为2的Suspended Accounts列。
我使用MAX函数只返回1行。我遇到的问题是2个暂停状态的记录除了结算号码外是相同的。
如果我从SQL中删除了结算号,那么结果只返回1个已暂停和1个已批准的帐户。我需要SQL在批准列中返回1行1,在挂起列中返回2
以下是一些示例数据:
Acct# Bill# Name Location Status
ABC Bill1 ABC Co 123456 Approved
ABC Bill2 ABC Co 123456 Suspended
ABC Bill3 ABC Co 123456 Suspended
任何建议都将不胜感激。谢谢你的帮助......
答案 0 :(得分:2)
您需要“条件聚合”:
select Acct#, Name, Location,
sum(case when Status = 'Approved' then 1 else 0 end) as Approved,
sum(case when Status = 'Suspended' then 1 else 0 end) as Suspended
from ...
group by 1,2,3