我的表中有一列市这样的
inMainDoc
0
0
1
1
0
0
1
1
0
0
怎么写SQL语句让它成为这样的效果inChildDoc   inMainDoc
6    

解决方案 »

  1.   

    我的表中有一列市这样的
    inMainDoc
    0
    0
    1
    1
    0
    0
    1
    1
    0
    0
    怎么写SQL语句让它成为这样的效果inChildDoc inMainDoc
    6           4  
      

  2.   

    我的表中有一列市这样的
    inMainDoc
    0
    0
    1
    1
    0
    0
    1
    1
    0
    0
    怎么写SQL语句让它成为这样的效果inChildDoc inMainDoc
    6              4        
      

  3.   

    select 
    sum(case when inMainDoc!=0 then 1 else 0 end) inChildDoc, 
    sum(case when inMainDoc=0 then 1 else 0 end) inMainDoc
    from tb 
      

  4.   

    --------------------------------------------------------------------------
    --  Author : htl258(Tony)
    --  Date   : 2010-04-09 13:30:42
    --  Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
    --          Jul  9 2008 14:43:34 
    --          Copyright (c) 1988-2008 Microsoft Corporation
    --          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
    --------------------------------------------------------------------------
    --> 生成测试数据表:tbIF NOT OBJECT_ID('[tb]') IS NULL
    DROP TABLE [tb]
    GO
    CREATE TABLE [tb]([inMainDoc] INT)
    INSERT [tb]
    SELECT 0 UNION ALL
    SELECT 0 UNION ALL
    SELECT 1 UNION ALL
    SELECT 1 UNION ALL
    SELECT 0 UNION ALL
    SELECT 0 UNION ALL
    SELECT 1 UNION ALL
    SELECT 1 UNION ALL
    SELECT 0 UNION ALL
    SELECT 0
    GO
    --SELECT * FROM [tb]-->SQL查询如下:
    select inChildDoc = sum(1-[inMainDoc]),inMainDoc=SUM([inMainDoc]) from tb
    /*
    inChildDoc  inMainDoc
    ----------- -----------
    6           4(1 行受影响)
    */?
      

  5.   

    估计楼主是想统计maindoc 的数目,
    用count() ,记得加group by
      

  6.   

    倒过来了,呵呵
    select 
    sum(case when inMainDoc=0 then 1 else 0 end) inChildDoc, 
    sum(case when inMainDoc!=0 then 1 else 0 end) inMainDoc
    from tb
      

  7.   

    inMainDoc列在数据库中是nchar(1)类型的,提示说无法用sum
      

  8.   


    select 
    sum(case when inMainDoc='0' then 1 else 0 end) inChildDoc, 
    sum(case when inMainDoc!='0' then 1 else 0 end) inMainDoc
    from tb