各位老大:
    使用水晶报表,后台数据库为SQL Server,我在VB中传入我的水晶报表的SQL语句为  select 1 from aa a, bb b, cc c 
    where a.aid = b.bid 
      and b.code = c.code and b.bdate between '2004-7-1' and '2004-7-31'
      order by a.aid    则调试执行时,在VB中报 SQL server 20515错误。
    假如我把 order by 语句去掉,即传语句时不排序,则报表正确显示
    或者假如把bdate的范围更改为  b.bdate between '2004-6-1' and '2004-7-30' , order by语句保留,报表也可正确显示。
    
    这个问题比较怪异,请各位老大赐教!谢谢!

解决方案 »

  1.   

    select 1 from aa a, bb b, cc c 
        where (a.aid = b.bid 
          and b.code = c.code and b.bdate between '2004-7-1' and '2004-7-31')
          order by a.aid为什么不把排序的事情交给水晶报表去做呢?
    还能加少数据库的压力
      

  2.   

    假如将排序的事情全交给水晶报表做,则会出现同一分组多次出现问题。
    比如 在水晶报表里将group1设置为按a.aid分组,则会在报表开始出现a.aid = 1的分组外,可能在报表结束或中间某处再次出现a.aid = 1的分组。即一个顶级分组出现几次。
      

  3.   

    使用SQL查询分析器执行是可以查询出结果的。而且与水晶报表中查询的结果的数量相同。所以报表不能显示很怪异。最怪异的地方是只要将sql语句中的时间范围修改到6月份,结果就正常了,而只要时间范围包括7月份,就又不正常了。