2010-07-13 130 views
0

如果我有几个账户跟踪数据每月与行标报告:的MS Access 03查询Criteras

UNITS, 
REVENUE, 
AVG REV/UNIT 

我将如何创建一个查询,将过滤报告,只显示户口所在UNITS行增加/减少25%,AVG REV/UNIT从前一个月增加/减少10%到当前月份。

一个例子是对六月份我有数字....

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

所以,当我在七月底运行报告中,我只希望有一个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; 
+0

你可以包含你正在使用的SQL查询来获得上面的数字吗?表格模式也会略有帮助。 – ktharsis 2010-07-13 16:16:39

+0

@ktharsis有帮助吗? – Edmond 2010-07-13 18:53:46

回答

0

您应该使用多个查询来完成。在第一个查询中,选择第一个月的数据。第二,到所需的月份进行比较。创建第一个链接两个的第三个查询(关心正确的关系)。在这些查询中进行分组/计算。

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

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