MS ACCESS SQL查询计数不同

格罗

我知道如何简单地进行如下计数:

SELECT AllItemsDateRange.Processors.ACH_Processor, COUNT(*) AS NumDays
FROM (SELECT DISTINCT AllItemsDateRange.Processors.ACH_Processor, AllItemsDateRange.SubmitDate FROM AllItemsDateRange)  AS T1
GROUP BY AllItemsDateRange.Processors.ACH_Processor;

但是,我不确定在查询更为复杂的情况下如何在不影响其他数据的情况下添加不同的计数。在下面的查询中,我希望最后一个项目(NumDays)是AllItemsDateRange.Processors.ACH_Processor,AllItemsDateRange.SubmitDate的不同计数。

SELECT AllItemsDateRange.Processors.ACH_Processor, AllItemsDateRange.ExposureLimit, AllItemsDateRange.Footprint, Sum(IIf([AllItemsDateRange].[DebitAmount]>0,1,0)) AS Debits, Sum(AllItemsDateRange.DebitAmount) AS DebitAmt, Sum(IIf([AllItemsDateRange].[CreditAmount]>0,1,0)) AS Credits, Sum(AllItemsDateRange.CreditAmount) AS CreditAmt, Sum(IIf(([AllItemsDateRange].[ReturnDate]>0) And ([AllItemsDateRange].[DebitAmount]>0),1,0)) AS DebitReturns, Sum(IIf(([AllItemsDateRange].[ReturnDate]>0) And ([AllItemsDateRange].[CreditAmount]>0),1,0)) AS CreditReturns, Sum(IIf([AllItemsDateRange].[ReturnDate]>0,[AllItemsDateRange].[CreditAmount]+[AllItemsDateRange].[DebitAmount],0)) AS ReturnAmt, Sum(IIf((([AllItemsDateRange].[ReturnCode]="R05") Or ([AllItemsDateRange].[ReturnCode]="R07") Or ([AllItemsDateRange].[ReturnCode]="R10") Or ([AllItemsDateRange].[ReturnCode]="R29") Or ([AllItemsDateRange].[ReturnCode]="R51")) And ([AllItemsDateRange].[DebitAmount]>0),1,0)) AS UnauthorizedReturns, Sum(IIf((([AllItemsDateRange].[ReturnCode]="R05") Or ([AllItemsDateRange].[ReturnCode]="R07") Or ([AllItemsDateRange].[ReturnCode]="R10") Or ([AllItemsDateRange].[ReturnCode]="R29") Or ([AllItemsDateRange].[ReturnCode]="R51")) And ([AllItemsDateRange].[DebitAmount]>0),[DebitAmount],0)) AS UnauthorizedReturnAmt, COUNT(AllItemsDateRange.SubmitDate) AS NumDays
    FROM AllItemsDateRange
    GROUP BY AllItemsDateRange.Processors.ACH_Processor, AllItemsDateRange.ExposureLimit, AllItemsDateRange.Footprint
    ORDER BY AllItemsDateRange.Footprint, AllItemsDateRange.ExposureLimit DESC , AllItemsDateRange.Processors.ACH_Processor DESC;

编辑:[AllItemsDateRange]基本上是事务列表。每笔交易都有日期。我想通过ACH_Processor汇总数据。因此,获取计数的总和以及借方和贷方的总和非常容易。困难的部分是获取该ACH_Processor处理交易的不同天数,因此我以后可以计算每日平均值。

汉素

修改第一个查询,以产生与第二个查询NumDays相同的非重复计数(GROUP BY

NumDays从第二个查询中删除

然后,您可以INNER JOIN在中包含的字段中选择两个GROUP BY

但是,再次阅读该问题,听起来您实际上确实希望GROUP BY每个查询都不同在这种情况下,将联接基于两个字段中都包含的字段:ACH_Processor

那仍然可以工作,但是相同的NumDays值可以在最终查询的多行中重复。但这也许就是您想要的...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章