SQL查询筛选语句
表结构是这样的
create table JFMXB
(  
    BZH   varchar2( 16 ),            /* 保障号   */  
    GRJF1  number( 6,2 ),            /* 个人缴费1   */
    DZRQ1  varchar2( 6 ),            /* 到账日期1   */
    JFGZ2  number( 4 ),              /* 缴费工资2   */
    GRJF2  number( 6,2 ),            /* 个人缴费2   */
    DZRQ2  varchar2( 6 ),            /* 到账日期2   */
    JFGZ3  number( 4 ),              /* 缴费工资3   */  
    GRJF3  number( 6,2 ),            /* 个人缴费3   */
    DZRQ3  varchar2( 6 ),            /* 到账日期3   */
    JFGZ4  number( 4 ),              /* 缴费工资4   */   
    GRJF4  number( 6,2 ),            /* 个人缴费4   */
    DZRQ4  varchar2( 6 ),            /* 到账日期    */
    JFGZ5  number( 4 ),              /* 缴费工资5   */  
    GRJF5  number( 6,2 ),            /* 个人缴费5   */    
    DZRQ5  varchar2( 6 ),            /* 到账日期5   */    
    JFGZ6  number( 4 ),              /* 缴费工资6   */
    GRJF6  number( 6,2 ),            /* 个人缴费6   */
    DZRQ6  varchar2( 6 ),            /* 到账日期6   */
    JFGZ7  number( 4 ),              /* 缴费工资7   */
    GRJF7  number( 6,2 ),            /* 个人缴费7   */
    DZRQ7  varchar2( 6 ),            /* 到账日期7   */  
    JFGZ8  number( 4 ),              /* 缴费工资8   */
    GRJF8  number( 6,2 ),            /* 个人缴费8   */
    DZRQ8  varchar2( 6 ),            /* 到账日期8   */
    JFGZ9  number( 4 ),              /* 缴费工资9   */
    GRJF9  number( 6,2 ),            /* 个人缴费9   */
    DZRQ9  varchar2( 6 ),            /* 到账日期9   */  
    JFGZ10 number( 4 ),              /* 缴费工资10  */  
    GRJF10 number( 6,2 ),            /* 个人缴费10  */
    DZRQ10 varchar2( 6 ),            /* 到账日期10  */
    JFGZ11 number( 4 ),              /* 缴费工资11  */
    GRJF11 number( 6,2 ),            /* 个人缴费11  */
    DZRQ11 varchar2( 6 ),            /* 到账日期11  */
    JFGZ12 number( 4 ),              /* 缴费工资12  */
    GRJF12 number( 6,2 ),            /* 个人缴费12  */    
    DZRQ12 varchar2( 6 ),            /* 到账日期12  */   
    constraint  JFMXB_PRIMARY_KEY primary key ( BZH,ND  )
);
我查询所有缴费成功的月份(有 缴费日期的才算成功,所以直接用日期的count加起来就可以了)
select bzh,(count(dzrq1)+count(dzrq2) +count(dzrq3) +count(dzrq4) +count(dzrq5) +count(dzrq6)
   +count(dzrq7)+count(dzrq8)+count(dzrq9) +count(dzrq10) +count(dzrq11) +count(dzrq12))as 缴费详细表总月数   
问题:很多数据的缴费日期都有注销过的数据,就是dzrq1活dzrq2或dzrq3等直接等于‘注销’,如何把这些注销的不算进来。
语句如何修改?
------解决方案--------------------
SQL code
select bzh,sum(case when dzrq1 = '注销' then 0 else 1 end)
          +sum(case when dzrq2 = '注销' then 0 else 1 end)
          +...
------解决方案--------------------
SQL code
select bzh,(count(dzrq1)+count(dzrq2) +count(dzrq3) +count(dzrq4) +count(dzrq5) +count(dzrq6)
  +count(dzrq7)+count(dzrq8)+count(dzrq9) +count(dzrq10) +count(dzrq11) +count(dzrq12))as 缴费详细表总月数
from...
where dzrq1<>'注销' and dzrq2<>'注销' and ....
我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html