日期:2014-05-16  浏览次数:20374 次

这个查询语句该怎么做?
根据条件,统计出给定条件的已缴费人数,未缴费人数,欠费人数,已缴费总额,未缴费总额,欠费总额等信息

这个查询操作都在表A进行

但是有一个问题 目前好像一个SQL查询无法做到 特来求助

比如我查询已缴费人数和已缴费总额

select count(*),sum(PayMoney) from 表A where 已缴费条件

那么我这个语句如何将后面的未交费 欠费人数 一次性查出来?
------解决方案--------------------
上点数据,未交费一般就是在SELECT语句中COUNT一下具有未交费标识的数据, 欠费人数同理
------解决方案--------------------
测试数据  需求 结果 谢谢
------解决方案--------------------
select (select count(*) from 表A where 已缴费条件) '已缴费人数',
        (select sum(PayMoney) from 表A where 已缴费条件) '已缴费总额',
         (select count(*) from 表A where 欠费条件) '欠费人数',
           (select sum(PayMoney) from 表A where 欠费条件) '未交费'

------解决方案--------------------
select count(case when 已缴费条件 then 1 else null end) '已缴费人数',
       sum(case when 已缴费条件 then PayMoney else 0 end) '已缴费总额',
      count(case when 欠费条件 then 1 else null end) '欠费人数',
       sum(case when 欠费条件 then PayMoney else 0 end) '未交费总额'
 from 表A

 

------解决方案--------------------
select
   sum(case when 已缴费条件 then 1 else  0 end) as  '已缴费人数',
   sum(case when 已缴费条件 then PayMoney else  0 end) as '已缴费总额',
   sum(case when 未缴费条件 then 1 else  0 end) as '未缴费人数,
   sum(case when 未缴费条件 then PayMoney else  0 end) as '未缴费总额'
from
  tb