2009-06-22 9 views
1

아래에서 내가 문제를 일으키는 쿼리가 있습니다. 그러나 서비스가 다르면 서비스 별 날짜별로 다른 서비스 날짜가 정해지지 만 전체적으로 다음과 같은 별개의 구역 만 있으면됩니다. 내가 혼란스러워 할 때 나는 이것을 어떻게 얻을 수 있을까? - 2 - 6 월 DISTRICT1 - 5 - 6 월하위 쿼리 문제

그리고

DISTRICT1보고 싶어 -

SELECT DISTINCT(DISTRICT), 
     Sum(completed) as TotalCompleted, 
     MONTHNAME, 
     MONTH 

FROM(SELECT TBL_PROPERTY.DISTRICT, 
     TBL_SERVICE.SERVICEDATE, 
     DATENAME(MONTH, SERVICEDATE) AS MONTHNAME, 
     CONVERT(INT,CONVERT(VARCHAR,DATEPART(YEAR, SERVICEDATE) + '00')) + DATEPART(MONTH, SERVICEDATE) AS MONTH, 
     COUNT(tbl_property.Propref) AS Completed 

FROM TBL_SERVICE INNER JOIN TBL_PROPERTY ON TBL_SERVICE.PROPREF = TBL_PROPERTY.PROPREF 

WHERE (TBL_PROPERTY.CONTRACT ='ma2') AND 
     (LASTSERVICEDATE BETWEEN '01/jun/2009' AND DATEADD(hh,23,'15/jun/2009')) AND 
     (NOT (TBL_SERVICE.BILLCODE1 = 'NA')) AND 
     (TBL_SERVICE.STATUS = 'Serviced') AND 
     (PROPERTYCLASS = 'cont') 

GROUP BY DISTRICT, servicedate 
) As sub1 

GROUP BY DISTRICT, monthname, month, Completed 

예 데이터

그래서 예를 들어 나는 현재

DISTRICT1 볼 (7) - June

+0

몇 가지 샘플 데이터와 원하는 결과를 제공해 주시겠습니까? – Quassnoi

+0

요청한대로 위의 예제 –

답변

0

나는 체크하지 않았다. t를 완전히 철저히 지켜야하지만, 결국 문제가 GROUP BY의 집계에 "완료"되었다고 보입니다.

마지막 줄을 아래 그림과 같이 변경하고 작동하는지 확인하십시오.

GROUP BY DISTRICT, monthname, month 
+0

나는 결과를 얻지 못했지만 결과는 한 편도 나왔지만 같은 달에 2 세트의 결과를 얻었고 한 지역, 1 개월 만 원했던가? - 2 - 6 월 DISTRICT1 - 5 - 6 월 그리고 난 DISTRICT1보고 싶어 - 그래서 예를 들어 내가 현재 DISTRICT1 7 참조 - 6 월 –

2

정확하게 읽으면 DISTRTICT, SUM (COMPLETED) 만보고 싶을뿐입니다. 이 경우, 당신은해야 단지

SELECT DISTRTICT, SUM(COMPLETED) FROM... 

과 끝에

GROUP BY DISTRICT 

편집 :

: 업데이트 된 요청에

, 난 당신이 다음을 수행 제안

SELECT DISTRTICT, SUM(COMPLETED), MONTHNAME FROM... 

및 끝

GROUP BY DISTRICT, MONTHNAME