你可以看一下数据库的理论,Row是没有顺序概念的,同样Column也没有。

解决方案 »

  1.   

    查询分析器中输入代码,执行 然后ctrl+L看执行计划, sort 不一样不懂 ~ 等楼下说!
      

  2.   

    注:还是猜想。可能sql server觉得按 varchar(10)排列数据比按varchar(100)排列起来方便的多,所以它选择了输出
    001 2006-10-05 50
    001 2006-10-11 100
    002 2006-10-29 200   !!!!注意这个
    001 2006-10-31 50    !!!!001在002下面
    002 2006-11-01 200
    这样的结果,注意它是按 中间那个 varchar(10)类型的字段排序的。
      

  3.   

    create table b(
       danhao   varchar(100),     
       bcfk     int,  
       fkrq     datetime
    )
    -----------------------------------------------------------
    insert into b select '001',         50,      '2006-10-5'
    insert into b select '001',        100,      '2006-10-11'  
    insert into b select '001',         50,      '2006-10-31'
    insert into b select '002',        200,      '2006-10-29'  
    insert into b select '002',        200,      '2006-11-1'
    -----------------------------------------------------------
    select danhao,fkrq=convert(varchar(10),fkrq,120),zyfk=sum(bcfk)
    from b group by danhao,convert(varchar(10),fkrq,120)
    order by danhao (这里加order by danhao)drop table bdanhao fkrq       zyfk        
    ------ ---------- ----------- 
    001    2006-10-05 50
    001    2006-10-11 100
    001    2006-10-31 50
    002    2006-10-29 200
    002    2006-11-01 200(所影响的行数为 5 行)
      

  4.   

    加order by danhao没问题。
    -------------------------------------
    select danhao,fkrq=convert(varchar(10),fkrq,120)   --!!!!!注意这,没zyfk=sum(bcfk)
    from b1 group by danhao,convert(varchar(10),fkrq,120)
    结果如下:
    001 2006-10-05
    001 2006-10-11
    001 2006-10-31   --!!!! 001和002的是放到同一组的哦
    002 2006-10-29
    002 2006-11-01
    ------------------------------------------
    select danhao,fkrq=convert(varchar(10),fkrq,120),zyfk=sum(bcfk)  --!!!加了sum(bcfk)
    from b1 group by danhao,convert(varchar(10),fkrq,120)
    结果如下:
    001 2006-10-05 50
    001 2006-10-11 100
    002 2006-10-29 200   !!!!注意这个
    001 2006-10-31 50    !!!!001在002下面
    002 2006-11-01 200
    ------------------------------------
    为什么加上sum(bcfk)001会跑到002下面去了,好像加了sum(bcfk)按fkrq分组了!!
    这也不应该是按fkrq分组了吧??想不懂!!!why??
      

  5.   

    加了sum(bcfk)后没排序啊!就不一定要显示在002前了。是不是?
      

  6.   

    我感到奇怪的是加order by也只是控制001,002谁显示在前,谁显示在后吧?不加order by也不应该上面的001中中竟然有002,为什么加sum(bcfk)就不行了呢??
      

  7.   

    UP
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html