sql - 将 MS Access 查询重写为更少的行数
问题描述
所以有一个数据库,我定期从中提取 200 个季度的数据。季度命名为列 Q0r、Q1r、Q2r、.....、Q200r。
所以我的查询是 Select Q0r, Q1r, Q2r, Q3r....., Q199r, Q200r from testdata where [condition];
我想知道是否有一种简单的方法可以重写这个查询,这样我就不必在 select 语句中从 0 数到 200 了。
解决方案
创建一个函数来构建 SQL 并将其写入查询:
Public Function CreateQuery()
Dim Query As DAO.QueryDef
Dim SqlMaster As String
Dim Sql As String
Dim Id As Integer
Dim Names(0 To 200) As String
Set Query = CurrentDb.QueryDefs("QueryQuarters")
SqlMaster = "Select {0} From YourTable"
For Id = LBound(Names) To UBound(Names)
Names(Id) = "Q" & CStr(Id) & "r"
Next
Sql = Replace(SqlMaster, "{0}", Join(Names, ","))
Query.Sql = Sql
Debug.Print Sql
End Function
推荐阅读
- prolog - 使用 Prolog 库 Simplex 求解线性方程组
- javascript - 无法从响应标头访问访问令牌和 uid
- matlab - 使用 plot 命令绘制任何原始数据矩阵的任何段,x 轴为时间,y 轴为电压(实际数据)
- r - 使用 plotly 跨动画帧的恒定热图
- audio - ffmpeg showspectrumpic fscale=log 不渲染右声道
- javascript - OnCreate 事件的确认对话框
- javascript - Expo 目前未启用对实验性语法“jsx”的支持
- sql - SQL:从另一个表中减去一个表中的值
- assembly - 如何在不同的操作系统和架构上运行相同的汇编程序?
- google-apps-script - 在 Google 表格的给定范围内,找到第一个空行