Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择访问数据库的前两个日期_Mysql_Ms Access - Fatal编程技术网

Mysql 选择访问数据库的前两个日期

Mysql 选择访问数据库的前两个日期,mysql,ms-access,Mysql,Ms Access,您好,我正在使用一个自行开发的培训数据库,我试图从中提取查询中的前两个日期。 我看过其他的帖子,但运气不好。我已经创建了一个临时表,其中包含我想要从中提取的一组记录。该表列出了所有员工的所有不同培训及其测试日期。我需要为每个特定培训提取最近的两个测试日期。每个培训都有一个特定的id,即使是不同年份的同一培训。感谢您的帮助。多谢各位 表tbl_TEMP包含以下字段: Subdepartment last_name first_name employee_id id training test_da

您好,我正在使用一个自行开发的培训数据库,我试图从中提取查询中的前两个日期。 我看过其他的帖子,但运气不好。我已经创建了一个临时表,其中包含我想要从中提取的一组记录。该表列出了所有员工的所有不同培训及其测试日期。我需要为每个特定培训提取最近的两个测试日期。每个培训都有一个特定的id,即使是不同年份的同一培训。感谢您的帮助。多谢各位

表tbl_TEMP包含以下字段:

Subdepartment
last_name
first_name
employee_id
id
training
test_date
revision
expiration_date
status

这将选择最近的两个日期

SELECT TOP 2 TestDate
FROM
    (SELECT DISTINCT TestDate FROM temp)
ORDER BY TestDate DESC;
从您的评论中,我了解到您不仅需要日期,还需要所有包含这些日期的记录。因此,对IN子查询where子句使用日期查询:

SELECT *
FROM temp
WHERE
    TestDate IN (
        SELECT TOP 2 TestDate
        FROM
            (SELECT DISTINCT TestDate FROM temp)
        ORDER BY TestDate DESC;
    )

要选择打开新查询的最近日期,请转到SQL视图并编写如下内容:

选择表1.Daterc和表1.training中的前两个 来自表1 按表1.Daterc分组,表1.training 按表1排序。日期说明


其中Table1是表的名称,Daterc是日期列,training是training列。如果日期是唯一的,你就不需要逐句说出。我希望这对您有所帮助。

您的问题是关于MySQL还是MS Access?它们不一样。这个表有超过4k条记录,当使用它时,我只返回1条记录。从tbl\U TEMP中选择前2个[tbl\U TEMP.Test Date],从tbl\U TEMP中选择不同的[tbl\U TEMP.Test Date];数据库采用Access 2000文件格式,如果这有任何不同。我添加了我忘记的ORDER BY section,只得到了2条记录。刚刚尝试了Oliver的建议,查询执行了,但我只得到了6条记录。有什么想法吗?谢谢,我不知道你的表是什么样子,应该返回多少条记录。该列是否不仅存储日期,还存储时间?该表包含以下字段:子部门、姓氏、名、员工id、id、培训、考试日期、修订、到期日期、状态。测试日期是日期/时间数据类型,但只有日期在字段中。这个表是我通过查询创建的临时表,因为测试日期是一个计算字段。希望这有帮助。谢谢,我仍然不明白你为什么说没有返回足够的记录。如果第一个查询返回两条记录,即最近的两个日期,那么第二个查询将返回这些日期的所有记录。查询执行,但仅获取6条记录。我一定错过了什么,但我会继续努力。感谢您必须创建一系列查询,每一个查询前面的句子都添加了:WHERE Table1.training=TrainingX TrainingX being数据中的每个可用培训在每个查询之后创建另一个查询,将结果记录每个培训的2个最早日期附加到一个表中。将所有这些放在宏上并运行它。我希望这能解决问题。