访问SQL查询,该查询使用where子句中的一个表中的字段来创建计算字段

时间:2015-10-12 13:51:01

标签: sql ms-access ms-access-2010

这真的不是那么复杂,但我无法绕过它。我已经彻底搜索过,但即便想出这个问题的搜索字符串或标题也很难。解释将告诉所有人:

  1. 表“labelDrops”包含字段“PO”和“Qty”(以及其他不相关的字段)
  2. 表“imageLiveCount”具有字段“PO”
  3. 我想计算实例(count(imageLiveCount.id)),其中imageLiveCoount.PO = labelDrops.PO,然后从“QTY”中减去它,以创建一个名为“QtyLeft”的计算字段。
  4. 结果基本上看起来像“SELECT PO,Qty,answerToThisQuestion AS QtyLeft FROM labelDrops”

1 个答案:

答案 0 :(得分:0)

首先创建一个查询,该查询为您提供 imageLiveCount 表中每个 PO 的计数:

SELECT i.PO, Count(*) AS CountOfInstances
FROM imageLiveCount AS i
GROUP BY i.PO

如果该查询返回您想要的内容,请将其加入 labelDrops 表并计算 QtyLeft

SELECT
    l.PO,
    l.Qty,
    (l.Qty - sub.CountOfInstances) AS QtyLeft
FROM
    labelDrops AS l
    INNER JOIN
        (
            SELECT i.PO, Count(*) AS CountOfInstances
            FROM imageLiveCount AS i
            GROUP BY i.PO
        ) AS sub
    ON l.PO = sub.PO