在Access中创建和计算字段

时间:2016-05-06 07:55:37

标签: database ms-access search

我一直在为学校做一个应该相当简单的练习。出于某种原因,我无法弄清楚我哪里出错了。我已经有一段时间了,所以我可能会忽略一些简单的事情。我有一些数据库的经验,并且今天早些时候在应用程序中实际实现了sqlite,但是访问权限让我陷入了困境!非常感谢任何帮助。

路线:

在tblEmployee表和tblDepartment表之间以及tblEmployee和tblSale表之间创建关系。确保在两种关系中强制执行引用完整性。 使用tblEmployee,tblProduct,tblSale和tblSaleDetail表在“设计”视图中创建查询。添加First,Last和Active?字段(按此顺序)到查询。对查询进行以下更改: 仅显示活跃员工。 在第一个空列中,计算每个活动员工的新字段“总销售额(UnitPrice *数量)”。 仅显示总销售额超过$ 300.00的员工。 计算每个活跃员工的新字段,总收入(总销售额 - (优惠券*数量))。 对UnitPrice,Quantity,Coupon,Total Sales和Total Revenue字段求和。 在查询结果中显示First,Last,Total Sales和Total Revenue。

访问权限设置

enter image description here

当我运行查询

enter image description here

为什么总销售额没有填充该等式?

另外,我有点不清楚在哪里添加> 300.00过滤员工销售。

1 个答案:

答案 0 :(得分:1)

此处的问题不是total sales列,而是在您创建名为total sales的列时引用计算字段total revenue

Total Sales仅在查询运行后计算,但total revenue想知道在运行查询之前该值是什么。

解决方法是使用相同的计算:

 total revenue: ([Quantity]*[UnitPrice])-([coupon]*[quantity])

另一种解决方法是创建一个计算total sales的查询。然后,您可以将该查询插入此查询并将其用作子查询。

  

“员工销售额> 300”。我认为以下可能有效:

我认为这是2位小数的货币值,而不是“销售数量”值。因此,我会添加一个新列。

SumOfSales: sum([tblSales].[quantity]*[tblSales].[UnitPrice])

  • 标准:> 300.00
  • 显示: unicked