Access 2010:如何关联同一个表中的两个字段?

时间:2012-05-31 14:43:33

标签: sql ms-access-2010

我在Access 2010中有一个数据库。

A有一个包含一些字段的表。其中三个是“输入”,“输出”和“日期”。 A也有总数量查询。

我想总结所有具有相同“日期”的“输入”值,并且我还要将具有相同“日期”的所有“输出”相加。

我希望我的查询找到扣除结果(“输入” - “输出”具有相同的“日期”)。

我的问题是如何关联具有相同“日期”值的不同插入。

请帮忙吗?

编辑:

input     output      date
  3         0         2/5/2012
  4         0         8/5/2012
  0         2         2/5/2012
  0         1         8/5/2012

我希望我的查询显示

available stock     date
   (3-2=) 1       2/5/2012
   (4-1=) 3       8/5/2012

EDITED v2:

我的sql代码是

 SELECT SUM(warehouse.in_quant)-SUM(warehouse.out_quant) AS SUM, 
 drugs.active_substance, drugs.strength, drugs.strength_type, drugs.dosage_form, 
 warehouse.available_stock, drugs.minimum_quantity, IIf([warehouse]![available_stock]
 [drugs]![minimum_quantity],"YES!","No") AS DiplayText, warehouse.curr_date
 FROM drugs INNER JOIN warehouse ON drugs.ID = warehouse.drug_id;

我收到此消息:

您尝试执行的查询不包含指定表达式“active_substance”作为聚合函数的一部分。

当我删除SUM(warehouse.in_quant)-SUM(warehouse.out_quant)AS SUM时,它可以正常工作。

2 个答案:

答案 0 :(得分:1)

转到查询设计窗口,添加相关表格,将要匹配的字段从一个表格拖到下一个表格。测试。如果它不是您想要的,请将sql发布回此处,并提供示例数据和问题解释。

SELECT i.Input-o.Output As Stock, i.Date
FROM (SELECT Input FROM Table
      WHERE Input > 0) i
LEFT JOIN 
     (SELECT Output FROM Table
      WHERE Output > 0) o
ON i.Date = o.Date

你可能需要更复杂的东西,但这应该是一个开始,希望。

重新评论

SELECT drugs.active_substance, 
       drugs.strength, 
       drugs.strength_type, 
       drugs.dosage_form, 
       warehouse.available_stock, 
       drugs.minimum_quantity, 
       warehouse.curr_date,
       SUM(warehouse.in_quant)-SUM(warehouse.out_quant) AS SUMQty
FROM drugs 
INNER JOIN warehouse ON drugs.ID = warehouse.drug_id
GROUP BY drugs.active_substance, 
       drugs.strength, 
       drugs.strength_type, 
       drugs.dosage_form, 
       warehouse.available_stock, 
       drugs.minimum_quantity, 
       warehouse.curr_date

答案 1 :(得分:1)

我不太确定你要求的是什么,但是要按照你应该使用group by子句的日期求和值

SELECT SUM(input) - SUM(output) as 'Input - Output', date 
FROM myTable 
GROUP BY date

Here就是我想你想做的一个例子。