-1

我们如何为 unidata 查询选择最新的记录。我们可以使用任何功能或命令吗?

我有数据

学生学期计划 Term_Start_date

1, 2018Fall , ABC, 08/01/2018

1, 2018 春季,数学,2018 年 1 月 1 日

1, 2017 秋季, HIST, 08/01/2017

2, 2017Fall, ENG, 08/01/2017

2、2017 年夏天,数学,2017 年 5 月 1 日

我希望看到这样的输出 - 每个学生应该显示最近的学期开始日期。

学生学期计划 Term_Start_date

1, 2018Fall , ABC, 08/01/2018

2, 2017Fall, ENG, 08/01/2017


我使用了 BY.DSND SAMPLE 1 但它只获得一条记录

4

1 回答 1

0

除了编写 UniBasic 程序来解析数据之外,您还可以使用“I 或 V”类型的 VOC 条目与 LIST 查询一起调用。像这样的东西。

免责声明:如果您不熟悉 UniData 或不熟悉 UniData,请勿在 UniData 数据库中输入或删除条目。没有“撤消”按钮。

不要输入引用的文本。这只是为了强调正在发生的事情。

AE VOC TEST "TEST or any name that isn't in use"
I "For Insert"
I "I Type entry"
DCOUNT(TERM,@VM); EXTRACT(@RECORD,3,@,0)
PRESS Enter
FI

此时,您有一个虚拟 VOC 条目,您可以将其作为“LIST”查询的条件调用。像这样。

LIST STUDENT TERM PROGRAM DATE WHEN DATE = TEST

这将返回每个学生 TERM 属性的最后一个多值记录。这是假设 TERM 是多值的并且 STUDENT 是单值属性。它的工作原理是计算值标记,然后根据计数返回记录和相关属性。

该文件必须设置为单值/多值组合,以便 DCOUNT 函数能够对每个单值属性进行计数。在这种情况下,一个学生可以有多个学期,每个学期都有自己的日期。现在这不是一种逻辑排序,它不是基于日历对日期进行排序,而是基于它们在文件中出现的顺序。

01-01-18
05-01-17
01-01-09 <-- Date Returned

--- 第一个答案 ---

如果您使用的是唯一性:

列出所有按.DSND @ID 样本 1 的客户

这将按一个值对文件进行排序,然后只选择 1 条记录。

于 2018-04-25T21:06:14.807 回答