2017-12-11 4 views
0

양식을 기반으로 보고서를 생성하는 데 사용하는 액세스 쿼리가 있습니다. 중복 된 레코드를 생성하는 쿼리에 문제가 있습니다.Microsoft Access에서 중복 결과를 생성하는 쿼리

몇 가지 조사가 끝난 후 여러 잠재적 가치가있는 조회 필드가 있고 각 필드에 모든 값을 표시 함에도 불구하고이 필드에 값이있을 때마다 쿼리가 레코드를 생성하기 때문에 이것이 발견되었습니다 (의도 한 결과가 무엇인지).

어떻게 해결할 수 있습니까? 쿼리 결과에 각 레코드의 인스턴스 하나만 표시하려고합니다.

고유 값 및 고유 레코드를 사용하도록 쿼리를 설정하려고 시도했지만 고유 값을 사용하면 쿼리를 실행할 때 조회 필드의 데이터를 입력하라는 메시지가 나타납니다.

쿼리의 SQL은 다음과 같습니다

PARAMETERS [Enter Start Date:] DateTime, [Enter End Date:] DateTime; 
SELECT DISTINCTROW RA_Generic.ID, RA_Generic.Title, RA_Generic.Description, 
RA_Generic.[Person Carrying Out], RA_Generic.Hazard_1, 
RA_Generic.Level_Of_Risk_1, RA_Generic.Control_Measures_1, 
RA_Generic.Worst_Possible_Outcome_1, RA_Generic.Level_Of_Risk_1_After, 
RA_Generic.Hazard_2, RA_Generic.Level_Of_Risk_2, 
RA_Generic.Control_Measures_2, RA_Generic.Worst_Possible_Outcome_2, 
RA_Generic.Level_Of_Risk_2_After, RA_Generic.Hazard_3, 
RA_Generic.Level_Of_Risk_3, RA_Generic.Control_Measures_3, 
RA_Generic.Worst_Possible_Outcome_3, RA_Generic.Level_Of_Risk_3_After, 
RA_Generic.Hazard_4, RA_Generic.Level_Of_Risk_4, 
RA_Generic.Control_Measures_4, RA_Generic.Worst_Possible_Outcome_4, 
RA_Generic.Level_Of_Risk_4_After, RA_Generic.Hazard_5, 
RA_Generic.Level_Of_Risk_5, RA_Generic.Control_Measures_5, 
RA_Generic.Worst_Possible_Outcome_5, RA_Generic.Level_Of_Risk_5_After, 
RA_Generic.Hazard_6, RA_Generic.Level_Of_Risk_6, 
RA_Generic.Control_Measures_6, RA_Generic.Worst_Possible_Outcome_6, 
RA_Generic.Level_Of_Risk_6_After, RA_Generic.Date_Updated, 
RA_Generic.Type_Of_RA, RA_Generic.Specific, RA_Generic.[Hazard Types] 
FROM RA_Generic 
GROUP BY RA_Generic.ID, RA_Generic.Title, RA_Generic.Description, 
RA_Generic.[Person Carrying Out], RA_Generic.Hazard_1, 
RA_Generic.Level_Of_Risk_1, RA_Generic.Control_Measures_1, 
RA_Generic.Worst_Possible_Outcome_1, RA_Generic.Level_Of_Risk_1_After, 
RA_Generic.Hazard_2, RA_Generic.Level_Of_Risk_2, 
RA_Generic.Control_Measures_2, RA_Generic.Worst_Possible_Outcome_2, 
RA_Generic.Level_Of_Risk_2_After, RA_Generic.Hazard_3, 
RA_Generic.Level_Of_Risk_3, RA_Generic.Control_Measures_3, 
RA_Generic.Worst_Possible_Outcome_3, RA_Generic.Level_Of_Risk_3_After, 
RA_Generic.Hazard_4, RA_Generic.Level_Of_Risk_4, 
RA_Generic.Control_Measures_4, RA_Generic.Worst_Possible_Outcome_4, 
RA_Generic.Level_Of_Risk_4_After, RA_Generic.Hazard_5, 
RA_Generic.Level_Of_Risk_5, RA_Generic.Control_Measures_5, 
RA_Generic.Worst_Possible_Outcome_5, RA_Generic.Level_Of_Risk_5_After, 
RA_Generic.Hazard_6, RA_Generic.Level_Of_Risk_6, 
RA_Generic.Control_Measures_6, RA_Generic.Worst_Possible_Outcome_6, 
RA_Generic.Level_Of_Risk_6_After, RA_Generic.Date_Updated, 
RA_Generic.Type_Of_RA, RA_Generic.Specific 
HAVING (((RA_Generic.Date_Updated) Between [Enter Start Date:] And [Enter 
End Date:])) 
ORDER BY RA_Generic.ID DESC; 

문제를 일으키는 것은 HazardTypes

인 필드
+0

쿼리를 공유하십시오. –

+0

어떻게하면 stackoverflow 질문에 쿼리를 첨부 할 수 있습니까? –

+0

당신은 SQL –

답변

0

내가 모두 GROUP BY 절은 DISTINCTROW을 제거하고에 HAVING 절을 이동 것 WHERE 절을 집계하지 않기 때문입니다.

PARAMETERS [Enter Start Date:] DateTime, [Enter End Date:] DateTime; 
SELECT RA_Generic.ID, RA_Generic.Title, RA_Generic.Description, 
RA_Generic.[Person Carrying Out], RA_Generic.Hazard_1, 
RA_Generic.Level_Of_Risk_1, RA_Generic.Control_Measures_1, 
RA_Generic.Worst_Possible_Outcome_1, RA_Generic.Level_Of_Risk_1_After, 
RA_Generic.Hazard_2, RA_Generic.Level_Of_Risk_2, 
RA_Generic.Control_Measures_2, RA_Generic.Worst_Possible_Outcome_2, 
RA_Generic.Level_Of_Risk_2_After, RA_Generic.Hazard_3, 
RA_Generic.Level_Of_Risk_3, RA_Generic.Control_Measures_3, 
RA_Generic.Worst_Possible_Outcome_3, RA_Generic.Level_Of_Risk_3_After, 
RA_Generic.Hazard_4, RA_Generic.Level_Of_Risk_4, 
RA_Generic.Control_Measures_4, RA_Generic.Worst_Possible_Outcome_4, 
RA_Generic.Level_Of_Risk_4_After, RA_Generic.Hazard_5, 
RA_Generic.Level_Of_Risk_5, RA_Generic.Control_Measures_5, 
RA_Generic.Worst_Possible_Outcome_5, RA_Generic.Level_Of_Risk_5_After, 
RA_Generic.Hazard_6, RA_Generic.Level_Of_Risk_6, 
RA_Generic.Control_Measures_6, RA_Generic.Worst_Possible_Outcome_6, 
RA_Generic.Level_Of_Risk_6_After, RA_Generic.Date_Updated, 
RA_Generic.Type_Of_RA, RA_Generic.Specific, RA_Generic.[Hazard Types] 
FROM RA_Generic 
WHERE (((RA_Generic.Date_Updated) Between [Enter Start Date:] And [Enter 
End Date:])) 
ORDER BY RA_Generic.ID DESC; 
+0

해결되었습니다! 쿼리를 업데이트 한 후 보고서의 레코드 원본을 변경 했으므로 이제 작동합니다. –