将以下语句改成INNER JOIN会好很多:
(select sum(计次) from [CARD_DETAIL$] as B where (B.证类型='证件七' or B.证类型='证件八') and (trim(B.单位)=trim(A.单位)) and (trim(B.个人编号)=trim(A.个人编号)) and (trim(B.姓名)=trim(A.姓名)) group by trim(b.单位),trim(b.个人编号),trim(b.姓名)) AS 分类一
例如:
SELECT [CARD_DETAIL$].个人编号, Sum([CARD_DETAIL$].计次) AS 计次, "类型一" AS 类型一
FROM [CARD_DETAIL$] INNER JOIN [CARD_DETAIL$] AS [CARD_DETAIL$]_1 ON ([CARD_DETAIL$].姓名 = [CARD_DETAIL$]_1.姓名) AND ([CARD_DETAIL$].个人编号 = [CARD_DETAIL$]_1.个人编号) AND ([CARD_DETAIL$].单位 = [CARD_DETAIL$]_1.单位)
GROUP BY [CARD_DETAIL$].个人编号, "类型一", [CARD_DETAIL$].证类型
HAVING ((([CARD_DETAIL$].证类型)="证件七" Or ([CARD_DETAIL$].证类型)="证件八"));