mar*_*n87 3 sql sql-server-2008
我有一个StatusID具有许多不同可能值的列的表,我想要做的是生成以下格式的报告,该报告能够生成各种条件的计数.
期望的输出:
Notes | Total | Valid | Invalid | Consults Booked |
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)