解决方案 »

  1.   

    用case when不就完了
    而且你说的日期段是指固定月的日期还是
    一年365天的某个日期段??
      

  2.   

    case when 似乎可以满足需求了,但是写出来的sql总是语法错误。。谁帮忙看看,如下:
    selcet sum(trx_amt),
    CASE trx_dt
      when between '2014-06-10' and '2014-06-16' then '2014-06-16'
      when between '2014-06-17' and '2014-06-23' then '2014-06-23'
    END
    from ac_trx_jnl
    group by 
    CASE trx_dt
      when between '2014-06-10' and '2014-06-16' then '2014-06-16'
      when between '2014-06-17' and '2014-06-23' then '2014-06-23'
    END
      

  3.   

    case when 似乎可以满足需求了,但是写出来的sql总是语法错误。。谁帮忙看看,如下:
    selcet sum(trx_amt),
    CASE trx_dt
      when between '2014-06-10' and '2014-06-16' then '2014-06-16'
      when between '2014-06-17' and '2014-06-23' then '2014-06-23'
    END
    from ac_trx_jnl
    group by 
    CASE trx_dt
      when between '2014-06-10' and '2014-06-16' then '2014-06-16'
      when between '2014-06-17' and '2014-06-23' then '2014-06-23'
    END
    你写的case when语法错误
    它有两种方式
    简单式语法:
    case 字段 when 值 then 1 esle 0 end
    搜索式语法:
    case  when 字段=值(大于等于小于这些条件) then 1 esle 0 end你的应该改成:
    CASE 
       when trx_dt between '2014-06-10' and '2014-06-16' then '2014-06-16' esle ...
       when trx_dt between '2014-06-17' and '2014-06-23' then '2014-06-23' else ...
     END
      

  4.   

    select sum(case when trx_dt between date'2014-4-1' and date'2014-4-2' then trx_amt end) num1, 
           sum(case when trx_dt between date'2014-5-1' and date'2014-5-2' then trx_amt end) num2,
           from ac_tdl