상위 5 개 (또는 N) 개의 값을 그룹별로 생성하는 쿼리를 작성하기 위해 많은 사이트 (예 : Allen Brown)를 검토했습니다. 이전 쿼리를 테이블로 참조하고 있기 때문에 서브 쿼리 생성에 매달린 것 같습니다.그룹 별 TopN에 대한 쿼리
나는 PI 수 (qryPICountbyMonth)를 매월 계산하는 쿼리를 시작했습니다. 그것은 별도의 쿼리를 구축
SELECT qryPI.EventMonth, qryPI.PI_Issue, Count(qryPI.PI_Issue) AS
CountOfPI_Issue
FROM qryPI
GROUP BY qryPI.EventMonth, qryPI.PI_Issue
HAVING (((Count(qryPI.PI_Issue)) In (Select Top 5 [PI_Issue] From [qryPI]
Where [EventMonth]=[qryPI].[EventMonth] Order By [PI_Issue] Desc)))
ORDER BY qryPI.EventMonth DESC , Count(qryPI.PI_Issue) DESC;
, qryPI
SELECT tblPI.EventDate, Format([EventDate],'yyyy-mm',1,1) AS EventMonth, tblPI.PI_Issue
FROM tblPI
WHERE (((tblPI.EventDate) >= #4/1/2016# And (tblPI.EventDate) <= #5/31/2016#))
GROUP BY tblPI.EventDate, Format([EventDate],'yyyy-mm',1,1), tblPI.PI_Issue;
나는 그것이 EventMonth에 의해 PI_Issue의 상위 5 수를 생성하도록 바라고 있어요 : 현재는 아래의 데이터 불일치 표현 오류가 있습니다. 충분한 정보를 제공하지 않은 경우 알려주십시오.
찍은 포인트 - 아직까지는 매우 초보자가 아니며 시행 착오와이 보드에서 대부분을 배웠습니다. 조정하는 방법에 대한 생각은 대단히 도움이 될 것입니다. – DChantal
Thanks Beth - 내 무지를 용서하되 나는 다른 쿼리를 만들어 붙여 넣어야합니까? 내가 할 때 집계 함수의 일부로 '지정된 표현식'year (EventDate)를 포함하지 않습니다. – DChantal
@DChantal, 업데이트 된 SQL을 사용해보십시오. 테이블을 만들고 행을 만들어 문법을 확인했습니다. – Beth