【发布时间】:2011-05-27 14:06:25
【问题描述】:
我正在尝试将表中的值插入到另一个现有表中,并且仅将我插入的值根据特定列按降序排序,同时将现有记录留在表的顶部。我怎么做?我尝试使用 Order By 语句,但是无论我使用要从中提取的表的列名还是目标表的列名,我都会收到错误消息。这也是使用 DoCmd.RunSQL 在 VBA 中运行的。
这是我现有的查询:
插入到 AllMetersAvgRSSI
(经度、纬度、平均RSSI)
选择 Prem.longitude, Prem.latitude, DataByCol.[平均 RSSI]
来自 [Prem]
剩下 加入 DataByColl ON (Prem.meter_miu_id = DataByColl.[MIU ID])
按 [AvgRSSI] 顺序排序
最终结果
我继续摆弄这个并发现你可以使用订单,就像我在上面显示的那样完全按照我试图做的那样做。我显然遇到的问题是由于我想要排序的列的名称仅从 Avg RSSI 更改为 AvgRSSI。当我将目标表更改为与源表具有相同的字段名称时,它会对传入信息进行排序,同时保留现有信息。我还做了一个测试,我将目标表的名称更改为 AverageRSSI,它的工作方式相同。所以最后是字段的名称仅由导致问题的空格不同。最后的查询是:
插入到 AllMetersAvgRSSI
(经度、纬度、[平均 RSSI])
选择 Prem.longitude, Prem.latitude, DataByCol.[平均 RSSI]
来自 [Prem]
剩下 加入 DataByColl ON (Prem.meter_miu_id = DataByColl.[MIU ID])
按 [平均 RSSI] 顺序排序
【问题讨论】:
-
在标准 SQL 中,表没有有订单 - 唯一定义 ORDER 的时间是您
SELECT数据。在这方面,我不记得 Access 与该模型有多接近,但我通常建议您确保在表中以列形式存在足够的数据,以支持在SELECTing 时生成所需的输出 ORDER。
标签: sql vba ms-access-2010