使用多值Count()数据创建Access表达式

时间:2013-11-05 04:21:25

标签: sql ms-access ms-access-2007

我的数据在几张表中。表1具有:
[发票](键),
[发票总额]和
[相关资产](表2中与[资产]相关的多值)。

表二包括:
[资产](关键)和
其他资产数据字段。

我需要做的是取发票总额并将其除以进入该价格的资产数量,以确定每项资产的成本。我在查询中使用count()函数来获取每张发票的资产数量,但我似乎无法在其他地方使用这些数据。

我创建了另一个查询来使用表达式

= [invoice total]/count([associated assets]

在查询中,我一直收到一个聚合错误,似乎无法使其工作。我希望表达式结果填充表1中的字段。我需要帮助设置工作查询以从中提取数据,或者需要帮助来提取数据并自动填充字段的表单项。

1 个答案:

答案 0 :(得分:0)

对于名为[发票]

的表格
invoice  invoice total  associated assets
-------  -------------  -----------------
      1          $3.00  bicycles
      2          $5.00  bicycles, ham
      3          $1.00  

其中[关联资产]是针对表[资产]

的多值查找字段
AssetID  AssetName
-------  ---------
      1  bicycles 
      2  ham      

以下查询

SELECT 
    i.invoice,
    i.inv_tot AS [invoice total],
    i.assetCount,
    IIf(i.assetCount=0, NULL, i.[invoice total]/i.assetCount) AS avgCostPerAsset
FROM
    (
        SELECT 
            Invoices.invoice, 
            Min(Invoices.[invoice total]) AS inv_tot,
            Count(Invoices.[associated assets].Value) AS assetCount
        FROM Invoices
        GROUP BY Invoices.invoice
    ) i

产生以下结果

invoice  invoice total  assetCount  avgCostPerAsset
-------  -------------  ----------  ---------------
      1          $3.00           1                3
      2          $5.00           2              2.5
      3          $1.00           0