日期:2014-05-18  浏览次数:20419 次

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