我在MS Access SQL中有一个查询,它从我的表中获取一些信息。我想在select语句中包含一个字段,该字段显示一个整数,并为每行增加X(1,2,3或其他)。
所以我的数据集看起来像:
(如果增加2)
Name SKU SortOrder <-This is my Auto Increment Field
Table XYZ123 0
Chair YRZ345 2
Sofa UFD355 4
我没有在表格中存储排序顺序我只想在Access SQL中生成这些值。
感谢您的帮助。
更新 我发现以下文章解释了通过访问程序和vba实现此目的的几种方法,但是我正在编写使用Access TSQL查询来获取数据然后导出的ac#程序进入一个excel文件,所以我无法在Access程序中向原始数据库添加任何内容,另外还有临时表路径,他们提到它膨胀了数据库。
https://accessexperts.com/blog/2015/07/28/ways-to-do-sequential-numbering-in-access/
我只想要一个在我的select语句中创建的顺序编号列,这是不可能的吗?
答案 0 :(得分:1)
我建议不要使用SQL来计算这些数据。这是不好的做法。 如果需要,最好在sql语句执行之前向表中添加一个字段并执行计算。
无论如何都可以在VBA中实现这个功能。像:
Private m_counter as Integer
Function CounterInit(Byval counter as Integer)
m_counter = counter
End Function
Function CounterGetNext(Byval incr as Integer)
m_counter = m_counter + incr
CounterGetNext = m_counter
End Function
然后在SQL中使用CounterGetNext()。但是你仍然需要在sql执行之前调用CounterInit()。使用RecordsetType = Snapshot进行此类查询。