获取 Microsoft Access 中的行以引用其他行

Posted

技术标签:

【中文标题】获取 Microsoft Access 中的行以引用其他行【英文标题】:Getting rows in Microsoft Access to refer to other rows 【发布时间】:2017-06-13 23:18:46 【问题描述】:

我有一个包含 3 个字段的 Microsoft Access 数据表:“part_number”、“date_of_price_change”和“new_price”,但我需要转换“new_price”字段以显示“price_change”,而不是完整的“new_price” "每个日期的每个部分。

这显然会涉及一些过程,即查看每个日期的每个唯一零件编号,并查找具有相同零件编号的记录的价格和下一个最早日期,然后扣除价格以获得价格变化。

问题是,我不知道如何在 Access 中执行此操作,并且 Excel 的记录太多。任何人都可以协助如何在 Access 中执行此操作吗? (请注意,日期更改可以随时发生,并且不是周期性的)。

非常感谢。

安娜

【问题讨论】:

你为什么要在这里面标记mysql 另外,你不应该改变结构。您目前拥有的是基础数据。您可以在视图/查询中从中得出您所追求的东西,这比从一长串价格变化中推断出任何给定时间的价格要容易得多。 我认为@SandPiper 建议您使用子查询将先前的价格拉入每条记录,然后计算差异。查看allenbrowne.com/subquery-01.html#AnotherRecord。不改变原始数据。 在这里access-programmers.co.uk/forums/showthread.php?t=294215 和accessforums.net/showthread.php?t=66588 交叉发布! 【参考方案1】:

将新列 price_change 添加为 Money 数据类型,然后运行如下查询。确保先将带有 APPEND 表的表备份到新表中,以防万一。由于它是一个新列,我可能并不重要。

UPDATE 
   T1 
SET 
   T1.price_change = T1.new_price - Nz((SELECT top 1 T2.new_price from MyTable T2 WHERE T2.part_number = T1.Part_Number ORDER BY date_of_price_change DESC),0) 
FROM 
   MyTable T1  

【讨论】:

非常感谢 Daniel 提供的代码。非常感谢您的努力

以上是关于获取 Microsoft Access 中的行以引用其他行的主要内容,如果未能解决你的问题,请参考以下文章

排列数组中的行以消除增加的子序列

替换 .plist 文件中的行以修改 <string> - 可以吗?

参考 Microsoft.Office.interop.access.dao.dll 导致错误 C#

如何迭代数据框中的行以检测不同的单词并将其保存在新列中?

Microsoft Access 中的 Scope_Identity()

如何更新没有任何数据的行以唯一标识该行?