上午  1  2008-08-01  NULL  NULL  NULL  √ 
下午  1  2008-08-01  NULL  NULL  NULL  √ 
上午  1  2008-08-01  NULL  NULL    √    NULL 
下午  1  2008-08-01  NULL  NULL    √    NULL 我想把上午和下午的各自合并到一起。就是 
上午  1  2008-08-01  NULL  NULL  √  √ 
下午  1  2008-08-01  NULL  NULL  √  √ 

解决方案 »

  1.   

     a   b   c           d     e     f     g
    上午  1  2008-08-01  NULL  NULL  NULL  √ 
    下午  1  2008-08-01  NULL  NULL  NULL  √ 
    上午  1  2008-08-01  NULL  NULL    √    NULL 
    下午  1  2008-08-01  NULL  NULL    √    NULL --
    select a,b,c,d,e,max(f) as f,max(g) as g
    from ta
    group by a,b,c,d,e
      

  2.   

    declare @t table(A varchar(10),ID int,[date]datetime,C varchar(10),D varchar(10),E varchar(10),F varchar(10))
    insert @t select '上午',  1,  '2008-08-01',  NULL,  NULL,  NULL,  '√' 
    insert @t select '下午',  1,  '2008-08-01',  NULL,  NULL,  NULL,  '√' 
    insert @t select '上午',  1,  '2008-08-01',  NULL,  NULL,    '√',    NULL 
    insert @t select '下午',  1,  '2008-08-01',  NULL,  NULL,    '√',    NULL 
    select A,ID,[date],C,D,max(E),max(F) from @t group by A,ID,[date],c,dA          ID          date                    C          D                     
    ---------- ----------- ----------------------- ---------- ---------- ---------- ----------
    上午         1           2008-08-01 00:00:00.000 NULL       NULL       √          √
    下午         1           2008-08-01 00:00:00.000 NULL       NULL       √          √
    警告: 聚合或其他 SET 操作消除了空值。(2 行受影响)
      

  3.   

    a  b  c          d    e    f    g 
    上午  1  2008-08-01  NULL  NULL  NULL  √ 
    下午  1  2008-08-01  NULL  NULL  NULL  √ 
    上午  1  2008-08-01  NULL  NULL    √    NULL 
    下午  1  2008-08-01  NULL  NULL    √    NULL 
    -- 
    select a,b,c,d,e,max(f) as f,max(g) as g 
    from ta 
    group by a,b,c,d,e
      

  4.   

     
    declare @T table([Col1] nvarchar(2),[Col2] int,[Col3] Datetime,[Col4] nvarchar(1),[Col5] nvarchar(1),[Col6] nvarchar(1),[Col7] nvarchar(1))
    Insert @T
    select N'上午',1,'2008-08-01',null,null,null,N'√' union all
    select N'下午',1,'2008-08-01',null,null,null,N'√' union all
    select N'上午',1,'2008-08-01',null,null,N'√',null union all
    select N'下午',1,'2008-08-01',null,null,N'√',null
     
    Select  
    [Col1],[Col2],[Col3],
    [Col4]=max([Col4]),[Col5]=max([Col5]),[Col6]=max([Col6]),[Col7]=max([Col7])
     from @T group by [Col1],[Col2],[Col3]
    order by [Col3],[Col1] desc/*
    Col1 Col2        Col3                    Col4 Col5 Col6 Col7
    ---- ----------- ----------------------- ---- ---- ---- ----
    上午   1           2008-08-01 00:00:00.000 NULL NULL √    √
    下午   1           2008-08-01 00:00:00.000 NULL NULL √    √
    */