2010-07-13 1 views
0

나는 표시된 행 매달 여러 계정에 대한 데이터를 추적하는 보고서가있는 경우 : 그냥 차지하는를 표시하는 보고서를 필터링하는 쿼리를 만드는 것 어떻게MS 액세스 03 쿼리 Criteras

UNITS, 
REVENUE, 
AVG REV/UNIT 

을 UNITS 행은 25 % 증가/감소하고 AVG REV/UNIT는 이전 달에서 당월까지 10 % 증가/감소했습니다. 나는 7 월 말에 보고서를 실행할 때

예 내가 번호를 6 월 한 달 동안 것입니다 ....

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

그래서 나는 단지 25 %의 차이가 계정을 원하는 UNITS 및/또는 보고서에 표시 할 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

+0

@ktharsis가 도움이됩니까? – Edmond

답변

0

두 개 이상의 쿼리를 사용해야합니다. 첫 번째 쿼리에서 첫 번째 달의 데이터를 선택합니다. 두 번째로, 원하는 달에 비교하십시오. 첫 번째와 두 번째를 연결하는 세 번째 쿼리를 만듭니다 (올바른 관계에주의하십시오). 이러한 쿼리에서 그룹화/계산을 수행하십시오.

세 번째 쿼리에서 단위 및 rev/unit의 증가/감소를 계산하는 두 개의 필드를 만듭니다. 이제 쿼리 열의 각 매개 변수 필드에 조건을 추가 할 수 있습니다.

여기에 나와있는 맹금은 몇 달 동안 기본 키로 작업하겠습니까? 예 : 첫 번째 쿼리의 A 행이 두 번째 달에 없으면 (예 : 두 번째 달에 이벤트가없는 경우) 표시되지 않습니다. 이 경우 솔루션은 테이블이나 쿼리를 연결하는 쿼리를 만들어 엔트리 집합이있는 쿼리를 생성하여 발생 했음에도 불구하고 원하는 모든 레코드를 표시하도록합니다.