【问题标题】:Access SQL: Union query that generates pop-upAccess SQL:生成弹窗的联合查询
【发布时间】:2015-07-29 17:13:32
【问题描述】:

情况:我有三个零件表:原材料、单个零件和组装零件。我创建了一个联合查询来列出所有零件编号以及它们的最低库存水平和库存的开放水平。我还有一个使用所有零件编号的库存表。我使用联合查询在另一个查询中查找当前库存和当前余额。当我尝试打开此查询时,我得到一个输入框,询问 CurrentInventory。

问题:如何让输入框停止出现?

代码:

表格:
原材料、单个零件和组装零件都具有类似的格式,以以下开头

PartNum | Min | Open
1         50    100

库存:

PartNum  | Year | Week | In | Out
1          2015   31     20   10

查询
联合查询:

SELECT PartNum, Open, Min
FROM Raw Material
UNION 
SELECT PartNum , Open, Min
FROM Individual Parts
UNION 
SELECT PartNum, Open, Min 
FROM Assembled Parts;

结果:

PartNum | Min | Open
1         50    100
etc.

当前库存:

SELECT AllParts.PartNum, AllParts.Open, Sum(Inventory.[In]) AS SumOfIn, 
       Sum(Inventory.Out) AS SumOfOut, 
       [Open]+[SumOfIn]-[SumOfOut] AS CurrentInventory, 
       AllParts.Min, [CurrentInventory]-[Min] AS CurrentBalance
FROM AllParts 
     INNER JOIN Inventory ON AllParts.PartNum = Inventory.PartNum
GROUP BY AllParts.PartNum, AllParts.Open, AllParts.Min, 
         [CurrentInventory]-[Min], [Open]+[In]-[Out];

当我尝试运行它时,我得到了 CurrentInventory 的输入框。如果我不输入任何内容,则不会影响结果。但是,当我尝试运行由此生成的报告时,该列将显示为我输入的内容,而不是实际值。

【问题讨论】:

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


    【解决方案1】:

    即使您将计算结果别名为“CurrentInventory”,您也不能在同一查询中通过别名引用该计算。 每次你有“CurrentInventory”(除了“AS”之后)你都需要用[Open]+[SumOfIn]-[SumOfOut]替换它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多