Sql 创建查找相同组织和上一年的计算(从何处开始?)

Sql 创建查找相同组织和上一年的计算(从何处开始?),sql,forms,ms-access,Sql,Forms,Ms Access,我正在尝试创建一个表单,将年度报告输入数据库。用一年的时间计算出基本的东西。但现在我需要做一个计算来衡量与前几年相比的年增长率 有约40个不同的组织,我正在输入到这个数据库的年度报告。我使用一个表(好主意?)将所有信息放入该数据库。为了引用同一组织的上一年,我需要匹配组织名称和上一年 所以我需要做的是: 如果CompanyName与当前记录CompanyName匹配,并且ReportYear是当前记录ReportYear的-1, 然后是当前记录资产减去找到的记录资产 正如你所说,我没有太多的编码

我正在尝试创建一个表单,将年度报告输入数据库。用一年的时间计算出基本的东西。但现在我需要做一个计算来衡量与前几年相比的年增长率

有约40个不同的组织,我正在输入到这个数据库的年度报告。我使用一个表(好主意?)将所有信息放入该数据库。为了引用同一组织的上一年,我需要匹配组织名称和上一年

所以我需要做的是:

如果CompanyName与当前记录CompanyName匹配,并且ReportYear是当前记录ReportYear的-1, 然后是当前记录资产减去找到的记录资产

正如你所说,我没有太多的编码经验。但是我对学习很感兴趣。我希望有人能为我指明正确的方向,让我能够在MS Access中成功创建该语句?我想我必须使用iif语句,但我不认为有Find函数,我只是不确定正确的语言是什么


干杯。

您的概念是正确的,您只需要将其转换为SQL即可。您需要将列名和表名转换为您自己的名称,但这就是您所描述的SQL

Select thisYear.CompanyName
  , thisYear.Asset - LastYear.Asset
  , nz(lastYear.asset,'No Prior Year') as [Message]
From CompanyTable as thisYear
Left Join on CompanyTable as lastYear on thisYear.CompanyName = LastYear.CompanyName
and thisYear.ReportYear -1 = lastYear.ReportYear 

非常感谢。我会把它建起来然后回来!终于可以再看看这个了。布拉德,3个问题,其中一个我很不好意思问。1.可以编辑表中的计算变量以包含SQL吗?(尴尬,因为我很确定答案是否定的)2。我是否应该使表单依赖于查询,然后查询更新表?那么像一个基于动作查询的表单?3.您创建的SQL(再次感谢您的帮助)引用了两个表,CompanyTable和thisYear——不过我希望将所有内容都保存在一个表中。那么我应该创建两个表?1。我不确定您的确切意思,但我非常确定您只能使用表达式生成器可用的函数来生成计算列。如果您需要更复杂的内容,请在查询中使用。事实上,无论如何,你通常都应该在查询中这样做。我认为表单的记录源应该是您的表。您可以将一个控件(可能是一个组合框)的rowsource设置为您的查询。或者,您可以创建一个子表单,该子表单链接到父表单,用于查找上一年的数据。由于您没有更新上一年的数据,因此不需要将表单的记录源作为查询@Esprit实际上是两次引用一个表。第一个引用我的别名是今年的
,第二个引用我的别名是去年的
。别名允许我们(并且是必要的)将一个表连接到它本身,就好像它是两个表(但它是一个表)。