sql查询以统计表中的各个字段

sql查询以统计表中的各个字段,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有查询表,字段如下 sno confname region enquiry status update closed approval 1 Conf 2020 Madhya Pradesh test test closed reconsider 2 Conf 2013 Maharashtra test 123 abcde

我有查询表,字段如下

sno     confname         region       enquiry   status update    closed      approval
 1     Conf 2020     Madhya Pradesh     test           test      closed      reconsider
 2     Conf 2013     Maharashtra       test 123        abcde                reconsider
 3     Conf 2013     Maharashtra        test12         test      closed      approved
 4     Conf 2013     Maharashtra        test124       test1      closed      approved 
 5     Conf 3        Karnataka          test124       test1                  
 6     Conf 3        Karnataka          test876       test45       
 7     Conf 3        Karnataka          test365       test45      closed     approved
我需要输出为

Region          Conf Name    Total No of Enq   No of Enq Closed    No of Enq Approved 
Maharashtra     Conf 2013                3                2                        2
Karnataka       Conf 3                   3                1                        1
Madhya Pradesh  Conf 2020                1                1  
我的sql查询是

SELECT confname,
       region,
       clsed ,
       apprstatus ,
       Count(region) AS totenq,
       Count(clsed) AS totenqclsd ,
       COUNT(apprstatus) AS totenqapproved
FROM [enquiries_dtls]
GROUP BY region,
         confname,
         clsed,
         apprstatus

您可以将聚合函数与
大小写表达式一起使用,以获得结果:

select region,
  confname,
  count(*) TotalEnquiry,
  sum(case when closed is not null then 1 else 0 end) TotalClosed,
  sum(case when approval = 'approved' then 1 else 0 end) TotalApproved
from enquiries_dtls
group by region, confname

编辑,如果需要基于这些列计算另一个值,则使用子查询:

select region,
  confname,
  TotalEnquiry,
  TotalClosed, 
  TotalApproved,
  TotalEnquiry - TotalApproved 
from
(
  select region,
    confname,
    count(*) TotalEnquiry,
    sum(case when closed is not null then 1 else 0 end) TotalClosed,
    sum(case when approval = 'approved' then 1 else 0 end) TotalApproved
  from enquiries_dtls
  group by region, confname
) src

请参见

使用字符串连接输出。在这里,我需要找到待处理查询的数量。这必须来自于总体调查的差异-TotalApproved@Affan如果您有新问题,请发布新问题。:)我只需要这项任务的答案。我需要计算查询总数和批准的查询总数之间的差值。需要减去这两个值