您好我正在使用本土培训数据库,我试图从查询中提取前两个日期。
我看过其他帖子,没有运气。我创建了一个临时表,其中包含我想要提取的记录集。该表列出了所有员工的所有不同培训及其考试日期。我需要为每个特定培训提取两个最近的测试日期。每个培训都有一个特定的ID,即使它是同一个培训只是一年不同。任何帮助表示赞赏。谢谢
表格tbl_TEMP
包含字段:
Subdepartment
last_name
first_name
employee_id
id
training
test_date
revision
expiration_date
status
答案 0 :(得分:0)
这将选择2个最近的日期
SELECT TOP 2 TestDate
FROM
(SELECT DISTINCT TestDate FROM temp)
ORDER BY TestDate DESC;
根据您的评论,我们了解您并不只想要日期,而是所有具有这些日期的记录。因此,请使用日期查询IN (subquery)
where子句:
SELECT *
FROM temp
WHERE
TestDate IN (
SELECT TOP 2 TestDate
FROM
(SELECT DISTINCT TestDate FROM temp)
ORDER BY TestDate DESC;
)
答案 1 :(得分:0)
要选择最近的日期,请打开一个新查询,转到SQL视图并编写如下内容:
SELECT TOP 2 Table1.Daterc,Table1.training 从表1 GROUP BY Table1.Daterc,Table1.training ORDER BY Table1.Daterc DESC;
“Table1”是表格的名称,“Daterc”是日期栏,“training”是培训栏。如果日期是唯一的,您将不需要GROP BY句子。我希望这会对你有所帮助。