【发布时间】:2021-04-16 02:35:26
【问题描述】:
我有多个表,表本身以它们的创建日期命名;例如 2021 年 4 月 1 日、2021 年 5 月 1 日等
这些表包含所有相同的列。
但我想创建一个 SQL 语句,允许我返回在两个日期之间创建的所有表,并用这些表中的所有记录填充 Datagridview。
理想情况下,我想要一个“上周创建”、“本周创建”、“本月创建”选项。我可以计算出开始日期和结束日期的语法。但我不确定返回日期之间的表格的正确方法是什么。
我查看了一些示例,但似乎没有一个对我有用,或者正是我所追求的。不确定我是否可以使用 sys.tables 或者我是否需要使用内部联接/左联接等来使其工作。
我的表格在Acccess.MDB 文件中。
【问题讨论】:
-
stackoverflow.com/questions/201282/… 然后循环将表名拼接到 SELECT * sql 语句的连接部分中。哪个连接取决于您选择如何处理丢失的数据。例如:SELECT * FROM 4/01/2021 INNER JOIN 5/01/2021 ON ...
-
真的应该是1个表,另外一个字段用于标识每组记录,可以是创建日期。那将是一个标准化的结构。那么 CROSSTAB 查询是透视数据的一种方法。否则,连接表需要一个主数据集,其中包含需要链接的公共标识符的所有可能值。
-
不幸的是,保存的查询对象不能动态包含表/字段。在 VBA 中,可以使用 QueryDefs 修改已保存的查询或构建 SQL 语句来设置报表的 RecordSource。不知道如何在 VB.net、C# 或任何你的前端编码中完成。
标签: sql ms-access datagridview oledb