我无法使聚合功能正常工作。 MS Access对我如何使用聚合函数进行了比较:
SELECT Max([RENEW_DATE]) AS Expr1
FROM RENEW_TRANSACTIONS INNER JOIN CIRC_TRANSACTIONS ON
RENEW_TRANSACTIONS.CIRC_TRANSACTION_ID =
CIRC_TRANSACTIONS.CIRC_TRANSACTION_ID
WHERE (("circ_transaction_id"=[circ_transactions].
[circ_transaction_id]))
order by CIRC_TRANSACTIONS.CIRC_TRANSACTION_ID;
我得到的错误是"您试图执行不包含指定表达式的查询&#; CIRC_TRANSACTIONS.CIRC_TRANSACTION_ID'作为总体功能的一部分"
我有两个表,circ_transactions和renew_transactions。第一个代表一个顾客检查一本书。第二个代表赞助人在书上得到的续约。所以更新的圈子是1-N。
我需要所有的circ项目,如果存在,还需要renew_date。但是,如果有多个续订日期,我需要最新的。我尝试过几种不同的方式,有些是我写的,有些是写的(大多数)是Access 2007.我尝试选择一个字段。没有工作。我试过以上。不行。在几个版本中,即使生成Access RENEW_TRANSACTIONS.CIRC_TRANSACTION_ID 复制到不同查询的同一标识符有问题。 (它给出了一个期望值的对话框,我已经学会了这意味着我输入的内容不正确,但我在这里找不到。) 因此,无论是作为独立查询,还是作为与一长串内部联接相关的较大查询的一部分,我如何获得最大值(续订日期)?我真的很喜欢这样做:
select RENEW_TRANSACTIONS.CIRC_TRANSACTION_ID, circ_transactions.item_id, circ_transactions.circ_transaction_id, MAX(renew_date)
但我认为这也不会奏效。
我需要做些什么才能让它发挥作用?我更喜欢将最大值代码本身作为查询作为较大查询中的字段,但我会采取任何有效的方法。现在我的大型查询获得了大约1690个交易ID,但是没有MAX的续订日期查询得到了1785,还有一百个额外的行。我需要获取这些数据并立即将其发送给我们的供应商。谢谢你的任何建议。
答案 0 :(得分:0)
您可能还希望通过CIRC_TRANSACTION_ID对其进行分组,以便查看每个项目的日期。
SELECT CIRC_TRANSACTIONS.CIRC_TRANSACTION_ID, Max([RENEW_DATE]) AS Expr1
FROM RENEW_TRANSACTIONS INNER JOIN CIRC_TRANSACTIONS ON
RENEW_TRANSACTIONS.CIRC_TRANSACTION_ID =
CIRC_TRANSACTIONS.CIRC_TRANSACTION_ID
GROUP BY CIRC_TRANSACTIONS.CIRC_TRANSACTION_ID
ORDER BY CIRC_TRANSACTION_ID;