sql = "select tad,sum(weight) weight from( select substr(t.TEAMDATE,1,4) tad,t.weight from vw_pro_trainwork t where substr(t.TEAMDATE,1,4) in(to_char(sysdate,'yyyy')-2,to_char(sysdate,'yyyy')-1,to_char(sysdate,'yyyy'))) group by tda order by tda";我这样写错了,该如何修改

解决方案 »

  1.   

    请问你的group by 后面的tda是什么?
      

  2.   

    tda 是数据库日期字段的缩写
      

  3.   

    substr(t.TEAMDATE,1,4)  改为:to_char(t.TEAMDATE,'yyyy')
      

  4.   

    substr(t.TEAMDATE,1,4)  改为:to_char(t.TEAMDATE,'yyyy')
    这样只出来一个2012年的数据,前两年的不见了
      

  5.   

    你确定你to_char(t.TEAMDATE,'yyyy')中的t.TEAMDATE 的时间是多少了
    建议你查询的时候 to_char(t.TEAMDATE,'yyyy'),t.TEAMDATE  这两列都查 看看结果
      

  6.   

    select tad, sum(weight) weight from (
    select substr(t.TEAMDATE, 1, 4) tad, t.weight
              from vw_pro_trainwork t
             where substr(t.TEAMDATE, 1, 4) in (2012,2011,2010))
             group by tda
             order by tda