我有一张 table ,上面有 StatusID
具有许多不同可能值的列,我想要做的是生成以下格式的报告,该报告能够生成各种条件的计数。
所需输出:
Notes | Total | Valid | Invalid | Consults Booked |
Total 是返回的所有行的计数 - 已经在下面的查询中
有效是任何
StatusID
那不是 5
, 7
或 42
无效的是
5
的计数, 7
和 42
咨询预订是
4
的计数(无效 + 有效应等于总计)
到目前为止,我只能设法获得
Total
,我不知道如何使用 IF
确定其他值或其他任何东西。查询至今
select notes, tLeadStatus.Status, tLeadStatus.StatusID,
count(*) as Total from LeadManagement.dbo.tLead with (NOLOCK)
left join LeadManagement.dbo.tInternetLead on tLead.Leadid = tinternetlead.leadid
left join LeadManagement..tLeadStatus on tLeadStatus.StatusID = tLead.Status
where (CampaignID = '12327')
and (registerdate >= '2013-03-01' and registerdate < '2013-04-01')
group by notes,tLeadStatus.StatusID,tLeadStatus.Status
最佳答案
SUM(CASE WHEN StatusID NOT IN (5, 7, 42) THEN 1 ELSE 0 END) AS Valid,
SUM(CASE WHEN StatusID IN (5, 7, 42) THEN 1 ELSE 0 END) AS Invalid,
SUM(CASE WHEN StatusId = 4 THEN 1 ELSE 0 END) AS 'Consults Booked'
关于SQL - 如何计算一列中多次出现的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16170852/