0

好的,所以我正在尝试运行一个查询,如果存在重复 ID,则在字段中显示空值。有2个表,父子关系。父表可以有一对多的子记录。在我的场景中,我们有可以对其进行许多检查的油箱。Tank 是父表,Tank_Inspections 是子表。我从油箱表中获取了一个容量数据字段,并将其与油箱检查记录连接起来,如果该油箱存在多次检查,它会显示两次。这很好,但是我不想重复计算容量,只想显示一次。我已将链接粘贴到屏幕截图的图像上,如果父表存在多条记录,它应该如何显示。突出显示的单元格应为空白。如你看到的,TankID = 65 有两个不同类型的检查,因为我从 Tank 表中获取容量字段,所以它被插入了两次。我要编写一个查询,因此如果对储罐进行两次或多次检查,则只显示一次容量并“删除”其他容量数据元素。在这种情况下,突出显示的单元格应该是空白的。建议?

http://imgur.com/6bYE8wS

4

1 回答 1

0

这听起来像是分析函数的工作。由于 Access 本身并不支持这些,因此有一个 hack 可以完成 row_number() 分析函数,听起来它可以满足您的需求:

在 MS Access 中实现 ROW_NUMBER / PARTITION BY

您创建一个调用此自联接的查询并使用它而不是表。一旦你有了每一行的行号,它看起来像这样:

Tank ID  Inspection ID   Row
 59          6841         1
 60          6842         1
 65          7344         1
 65          6843         2

你的容量公式会变成[Inspection].[Capacity]这样:

IIf([Self Join].[Row] = 1, [Inspection].[Capacity], Null)
于 2015-11-04T04:09:09.760 回答