一表aTable,字段如下: aVer,aCode,Price
 12   F01    10
 12   F02    3
.....
 共有记录从F01顺序到F80,aVer都是一样的'12',我用交叉查询将纵向转成一行横向Transform sum(price) select aVer from aTable group by aVer Pivot aCode可以得到如下一行记录:
 aVer F01  F02  F03.....F80现在该表增加了记录从F81---F100,用上面的语句得到如下结果
 aVer F01  F02 F03...F10 F100 F11  F12....F99而我想要的结果是从F01...F100依次排列,即 aVer F01  F02 F03...F10  F11 F12  ....F99  F100
请朋友们帮帮忙。

解决方案 »

  1.   

    谢谢楼上的。我上面的表本身是排序的,从F01依次到F100的。由于前期只准备用F+两位数字组成代码的,现在特殊情况已扩大到100以上了,由于不允许将以前F01的代码改成F001这种格式,所以要混用了。
      

  2.   

    想到一个办法,暂时解决Transform sum(price) select aVer from aTable group by aVer Pivot iif(len(aCode)=3,space(1)+aCode,aCode)求更好的办法。明天结帐。
      

  3.   

    不太懂Access交叉表,现模仿一个,假设F后面不超过3位数字
    Transform sum(price) select aVer from aTable group by aVer Pivot Concatenate(Left(aCode, 1), Right(Concatenate('000', Right(aCode, len(aCode)-1)), 3))