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