下面的SQL,请问根据 sqsj 这 字段进行 order by desc 的方式排序,我试了很多方法,都没实现。
大家帮忙看看 谢谢了。select a.time
dqhlTime,a.count dqhlCount,b.time dsblTime,b.count
dsblCount from
(select
to_char(sqsj,'YYYY-MM-DD') time,count(1) count
from yw_sqxx order by time desc
<if test="whereSql!=null and whereSql!=''">
${whereSql} and
</if>
<if test="whereSql==null or whereSql==''">
where
</if>
slyy like '2%'
and zfzt='1' group by
to_char(sqsj,'YYYY-MM-DD')) a full
join
(select
to_char(sqsj,'YYYY-MM-DD') time,count(1) count from yw_sqxx
<if test="whereSql!=null and whereSql!=''">
${whereSql} and
</if>
<if test="whereSql==null or whereSql==''">
where
</if>
slyy like '4%'
and zfzt='1' group by
to_char(sqsj,'YYYY-MM-DD')) b on
a.time = b.time

解决方案 »

  1.   

    你使用了 to_char(sqsj,'YYYY-MM-DD') time 了,并且使用了 group by 子句。就不能按 sqsj 来排序了。
      

  2.   

    结尾加 order by a.time不能满足要求么?
      

  3.   


    order by to_char(sqsj,'YYYY-MM-DD')  desc
    或者是
    order by sqsj desc
      

  4.   

    1、从字面上看,你只是截取了时间的年月日部分,按照截取后的结果排序不可以?
    2、你的order by都加了子查询,是想在子查询里面排序还是最后的结果排序?
    3、能不能把条件判断写成常量,再贴出完整的sql,方便分析
    4、语句后面加个 order by 1,是你要的效果不