Ms access 如何在MS Access中获取总值或总和(值)

Ms access 如何在MS Access中获取总值或总和(值),ms-access,odbc,ms-access-2010,Ms Access,Odbc,Ms Access 2010,在MS Access中,我已连接到具有只读访问权限的外部Oracle数据库表。该表跟踪产品的生产过程。一篇文章可能会在一次或几次运行中生成,直到目标数量完成 如何从该表中获取完整金额completekz=1或仅SUMAMOUNT completekz=0项 PRODNR COMPLETEKZ BACOMPLETEKZ AMOUNT ------ ---------- ------------ ---------- ... ...

在MS Access中,我已连接到具有只读访问权限的外部Oracle数据库表。该表跟踪产品的生产过程。一篇文章可能会在一次或几次运行中生成,直到目标数量完成

如何从该表中获取完整金额completekz=1或仅SUMAMOUNT completekz=0项

PRODNR COMPLETEKZ BACOMPLETEKZ     AMOUNT
------ ---------- ------------ ----------
   ...            ...                 ...
    16 0          partial             500
    16 0          partial           20000
    16 0          partial            8000
    16 1          complete          40000
    17 1          complete            100
    18 0          partial           10000
    18 0          partial            1500
    19 1          complete          35000
   ...            ...                 ...
这是我返回所有四行的查询。我找不到正确的方法

SELECT 
prodnr,
completekz,
bacompletekz,
IIF ( ((SELECT MAX(sub1.completekz) FROM aforueck AS sub1 WHERE sub1.prodnr = '16') = '1'),
  amount,
  '-1'
) AS Test
FROM aforueck
WHERE prodnr = '16'
考虑

这个

选择Q1.prodnr、SumIIf[completekz]=1和[MaxComp]=1或[completekz]=0和[MaxComp]=0、[Amount],0作为SUMMAT 从中选择aforueck.prodnr、aforueck.completekz、aforueck.bacompletekz、aforueck.amount、DMaxCompletekz、aforueck、prodnr='和[prodnr]&'作为MaxComp 从阿弗鲁克到Q1 按产品分组

选择一个rueck.prodnr,SumIIf[completekz]=1和[MaxComp]=1或[completekz]=0和[MaxComp]=0[Amount],0作为summant 从中选择afoureck.PRODNR,将maxaforeck.COMPLETEKZ作为MaxComp,从afoureck组中选择afoureck.PRODNR作为Q1 Q1.PRODNR上的内部连接AFORUCK=AFORUCK.PRODNR 由Aforuck.prodnr分组

两者都返回: +----+----+ |产品数量| +----+----+ | 16 | 40000 | | 17 | 100 | | 18 | 11500 | | 19 | 35000 | +----+----+


这符合完整金额completekz=1或仅SUMAMOUNT completekz=0条目的描述。如果这不是所需的输出,请提供一个示例。

谢谢您的回复。不幸的是,两个查询都没有返回所需的值,我无法从语句中读取原因。目标表包含许多具有相同prodnr的条目,但两个查询都返回完全不同的行,不包含任何匹配项。也许我的方法是错误的。也许我应该总是获取一组产品的最后一个条目。但这让我回到了同一个问题。适当的查询是什么样子的?我改进了我的入门文章,以便更清楚地解释情况。您提供了更多原始数据示例,但仍然说“返回所有四行”。不太清楚。请看我修改后的答案。事实上,我不确定我的问题是否清楚,因为我从数据源收到了奇怪的结果,但您返回的数据正是我所期望的。出于某种原因,它没有从我的数据源返回我期望的结果,这就是为什么我想知道我获取所需行的方法是否正确,或者另一种总是为prodnr选择最后一行的方法可能是更好的解决方案。我不确定我是否可以问几乎与新问题相同的问题,或者我是否应该在这里问如何始终获取产品的最后一行。我不想白白被否决。您有什么建议?如果prodnr只有“0个部分”记录,那么哪一个是“最后”行?无论记录在表中如何显示,它们都没有既定的顺序,不像Excel电子表格中的行。