【问题标题】:access 2016 query访问 2016 查询
【发布时间】:2016-08-11 00:51:26
【问题描述】:

我需要一些帮助来创建查询。这是一个库存应用程序,其中 Product1 从位置 A 移动到位置 B,然后移动到位置 C。然后位置 B 的 Product1 应该有零库存。我有一个存储所有动作的表格,如下所示:

Movements (
    ProductName,
    QtyMoved,
    LocationFrom,
    LocationTo
)

两个条目可能是:

ProductName | QtyMoved | LocationFrom | LocationTo
------------+----------+---------------------------
"Product1"  |      500 | "LocationA"  | "LocationB"
"Product1"  |      500 | "LocationB"  | "LocationC"

此查询列出了上述条目:

SELECT
    ProductName, QtyMoved, LocationFrom, LocationTo    
FROM
    Movements
WHERE
    LocationFrom = 'LocationB'
    OR
    LocationTo = 'locationB';

我想要计算并列出“Product1”在“locationB”中的总数量(在这种情况下为零)。

我希望查询的数据表视图显示 3 列,ProductNameQtyMoved'LocationB'。我相信我需要的是这样的表达:

(total qty of Product1 in locationFrom for locationB) minus (total qty of Product1 in locationTo for locationB).  

如果我要创建报告而不是查询,也许这会更容易。任何建议,将不胜感激。

【问题讨论】:

  • edit您的问题标题描述您遇到的问题或您提出的问题。如果您从标题中删除产品名称,它会留下 query,它的用处为零。您的标题应该提供足够的信息,以便对在搜索结果中看到它的未来读者有意义。 (您要查找的内容称为running total,它应该为您提供一个很好的搜索词组,以便在此处使用。)

标签: sql ms-access


【解决方案1】:

我会进行 UNION 查询以将移动添加到某个位置并减去移动到某个位置 - 类似于

Select ProductName, LocationTo as Location, QtyMoved as Balance from Movements
Union All Select ProductName, LocationFrom, -QtyMoved from Movements

保存此查询后,您可以将其用作第二个查询的来源以获取余额,例如

Select ProductName, Location, Sum(Balance) as Balance from [Movements Summary]

【讨论】:

  • 谢谢你,肯,我会尽量在我的描述中更具体。我能够找到一些有用的信息以供将来使用搜索“运行总计”。
  • 谢谢唐。我对 Access 比较陌生。使用 UNION ALL 就成功了。我现在也明白需要 2 个查询才能做到这一点。
猜你喜欢
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
相关资源
最近更新 更多