MS Access 03查询标准

时间:2010-07-13 15:55:39

标签: ms-access-2003

如果我的报告跟踪每个月的多个帐户的数据,并标有以下行:

UNITS, 
REVENUE,
AVG REV/UNIT

如何创建一个查询,过滤报告,只显示UNITS行增加/减少25%的帐户,AVG REV / UNIT从上个月增加/减少10%到当月。

一个例子是6月我有数字......

            JUN
UNITS       3,271
Revenue     $3,598.10
Avg R/U     $1.08

因此,当我在7月底运行报告时,我只想要在UNITS上有25%的差异和/或在报告中显示的AVG REV / UNIT差异为10%的帐户。

qryPharmacy
SELECT PHAR_REPORT.*, (IIf(u1 Is Null,0,u1)+IIf(u2 Is Null,0,u2)+IIf(u3 Is Null,0,u3)+IIf(u4 Is Null,0,u4)+IIf(u5 Is Null,0,u5)+IIf(u6 Is Null,0,u6)+IIf(u7 Is Null,0,u7)+IIf(u8 Is Null,0,u8)+IIf(u9 Is Null,0,u9)+IIf(u10 Is Null,0,u10)+IIf(u11 Is Null,0,u11)+IIf(u12 Is Null,0,u12)) AS USUM, (IIf(r1 Is Null,0,r1)+IIf(r2 Is Null,0,r2)+IIf(r3 Is Null,0,r3)+IIf(r4 Is Null,0,r4)+IIf(r5 Is Null,0,r5)+IIf(r6 Is Null,0,r6)+IIf(r7 Is Null,0,r7)+IIf(r8 Is Null,0,r8)+IIf(r9 Is Null,0,r9)+IIf(r10 Is Null,0,r10)+IIf(r11 Is Null,0,r11)+IIf(r12 Is Null,0,r12)) AS RSUM, RMonth.*, PG2.*, PG.pGroup
FROM PHAR_REPORT, RMonth, PG2, PG
WHERE (((PHAR_REPORT.PR) Like ([PCODE] & '*')) And ((PG.pID)=PG2.PID))
ORDER BY PG2.pID, PHAR_REPORT.PR;

1 个答案:

答案 0 :(得分:0)

您应该使用多个查询。在第一个查询中,选择第一个月的数据。一秒钟,到想要的月份进行比较。创建第一个链接两个查询的查询(注意正确的关系)。在这些查询中进行分组/计算。

在第3个查询中,创建两个字段,用于计算单位和转/单位的增加/减少。现在,您可以在查询列中的每个参数字段上添加标准。

这里的挑战是确定你将在几个月内使用主键。例如:如果第一个查询中的A行不在第二个查询中(例如,在第二个月没有事件),则不会显示。在这种情况下,解决方案是创建链接具有entyre寄存器集的表或查询的查询,强制它显示所有所需的记录,尽管它们是否存在。