1、取合计的条件是:纪录中字段KARI_CD1 KARI_CD2 KARI_CD3 KARI_CD4相同的纪录
             取合计 SUM(KARI_NM1) SUM(KARI_NM2) SUM(KARI_NM3) SUM(KARI_NM4) 2、每条纪录中都有个日期!
    只要是没有取合计的纪录,都显示从表里查询出来的日期
    取合计的纪录,显示系统日期

解决方案 »

  1.   

    select KARI_CD1,KARI_CD2,KARI_CD3,KARI_CD4,SUM(KARI_NM1),SUM(KARI_NM2),SUM(KARI_NM3),SUM(KARI_NM4),(case when count(*)>1 then getdate() else riqi end) as '日期'
    from table1 group by KARI_NM1,KARI_NM2,KARI_NM3,KARI_NM4
    ---------假设riqi是原日期字段。
      

  2.   

    楼上的,霸道!!有个小问题,你把只有一条记录的给忘了,修改如下:
    (case when count(*)>=1 then getdate() else riqi end) as '日期'
      

  3.   

    对不起,网了说最重要的条件了:
    纪录中字段KARI=0,才可以取合计,KARI=1时,不取
      

  4.   

    1、纪录中字段KARI=0,才可以取合计,KARI=1时,不取
    2、取合计的条件是:纪录中字段KARI_CD1 KARI_CD2 KARI_CD3 KARI_CD4相同的纪录
                 取合计 SUM(KARI_NM1) SUM(KARI_NM2) SUM(KARI_NM3) SUM(KARI_NM4) 3、每条纪录中都有个日期!
        只要是没有取合计的纪录,都显示从表里查询出来的日期
        取合计的纪录,显示系统日期
      

  5.   

    select KARI_CD1,
           KARI_CD2,
           KARI_CD3,
           KARI_CD4,
           (select SUM(KARI_NM1) from 表 
            where KARI_CD1=t.KARI_CD1 and 
                  KARI_CD2=t.KARI_CD2 and 
                  KARI_CD3=t.KARI_CD3 and 
                  KARI_CD4=t.KARI_CD4),
           (select SUM(KARI_NM2) from 表 
            where KARI_CD1=t.KARI_CD1 and 
                  KARI_CD2=t.KARI_CD2 and 
                  KARI_CD3=t.KARI_CD3 and 
                  KARI_CD4=t.KARI_CD4),
           (select SUM(KARI_NM3) from 表 
            where KARI_CD1=t.KARI_CD1 and 
                  KARI_CD2=t.KARI_CD2 and 
                  KARI_CD3=t.KARI_CD3 and 
                  KARI_CD4=t.KARI_CD4),
           (select SUM(KARI_NM4) from 表 
            where KARI_CD1=t.KARI_CD1 and 
                  KARI_CD2=t.KARI_CD2 and 
                  KARI_CD3=t.KARI_CD3 and 
                  KARI_CD4=t.KARI_CD4),
    from 表 t
    where KARI_CD1+KARI_CD2+KARI_CD3+KARI_CD4=4
          and
          not exists(select 1 from 表 
                     where KARI_CD1=t.KARI_CD1 and 
                           KARI_CD2=t.KARI_CD2 and 
                           KARI_CD3=t.KARI_CD3 and 
                           KARI_CD4=t.KARI_CD4 and
                           主键<t.主键
                    )
      

  6.   

    select KARI_CD1,KARI_CD2,KARI_CD3,KARI_CD4,SUM(KARI_NM1),SUM(KARI_NM2),SUM(KARI_NM3),SUM(KARI_NM4),(case when count(*)>1 then getdate() else max(riqi) end) as '日期'
    from table1 group by KARI_CD1,KARI_CD2,KARI_CD3,KARI_CD4
    ---------假设riqi是原日期字段。
      

  7.   

    select KARI_CD1,
           KARI_CD2,
           KARI_CD3,
           KARI_CD4,
           (select SUM(KARI_NM1) from 表 
            where KARI_CD1=t.KARI_CD1 and 
                  KARI_CD2=t.KARI_CD2 and 
                  KARI_CD3=t.KARI_CD3 and 
                  KARI_CD4=t.KARI_CD4),
           (select SUM(KARI_NM2) from 表 
            where KARI_CD1=t.KARI_CD1 and 
                  KARI_CD2=t.KARI_CD2 and 
                  KARI_CD3=t.KARI_CD3 and 
                  KARI_CD4=t.KARI_CD4),
           (select SUM(KARI_NM3) from 表 
            where KARI_CD1=t.KARI_CD1 and 
                  KARI_CD2=t.KARI_CD2 and 
                  KARI_CD3=t.KARI_CD3 and 
                  KARI_CD4=t.KARI_CD4),
           (select SUM(KARI_NM4) from 表 
            where KARI_CD1=t.KARI_CD1 and 
                  KARI_CD2=t.KARI_CD2 and 
                  KARI_CD3=t.KARI_CD3 and 
                  KARI_CD4=t.KARI_CD4),
           [日期]=(
                    case 
                       when (select count(1) from 表
                             where KARI_CD1=t.KARI_CD1 and 
                             KARI_CD2=t.KARI_CD2 and 
                             KARI_CD3=t.KARI_CD3 and 
                             KARI_CD4=t.KARI_CD4)>1
                       then getdate()
                       else riqi
                    end
                  )
    from 表 t
    where KARI_CD1+KARI_CD2+KARI_CD3+KARI_CD4=4
          and
          not exists(select 1 from 表 
                     where KARI_CD1=t.KARI_CD1 and 
                           KARI_CD2=t.KARI_CD2 and 
                           KARI_CD3=t.KARI_CD3 and 
                           KARI_CD4=t.KARI_CD4 and
                           主键<t.主键
                    )
      

  8.   

    对不起,网了说最重要的条件了:
    纪录中字段KARI=0,才可以取合计,KARI=1时,不取------
    select KARI_CD1,KARI_CD2,KARI_CD3,KARI_CD4,SUM(KARI_NM1) as 'kari_nm1',SUM(KARI_NM2) as 'kari_nm2',SUM(KARI_NM3) as 'kari_nm3',SUM(KARI_NM4) as 'kari_nm4',riqi
    from table1  where  KARI=0 group by KARI_CD1,KARI_CD2,KARI_CD3,KARI_CD4
    union all
    select KARI_CD1,KARI_CD2,KARI_CD3,KARI_CD4,KARI_NM1,KARI_NM2,KARI_NM3,KARI_NM4,riqi
    from table1  where  KARI=1
      

  9.   

    TO vivianfdlpw():
    大侠: where KARI_CD1+KARI_CD2+KARI_CD3+KARI_CD4=4这句是什么意思!
      

  10.   

    select KARI_CD1,KARI_CD2,KARI_CD3,KARI_CD4,SUM(KARI_NM1),SUM(KARI_NM2),SUM(KARI_NM3),SUM(KARI_NM4),(case when count(*)>1 then getdate() else max(riqi) end) as '日期'
    from table1 group by KARI_CD1,KARI_CD2,KARI_CD3,KARI_CD4