вопрос подзапроса - PullRequest
1 голос
/ 22 июня 2009

У меня есть запрос ниже, который вызывает у меня проблемы. Тем не менее, это нормально, так как у меня разные даты обслуживания, их группировка по отдельным, а не по обслуживанию, но я просто хочу отдельные районы с итоговыми значениями. Как я могу обойти это, так как я запутался сейчас !!!

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

Пример данных

Так, например, я сейчас вижу

Район 1 - 2 - июнь Район1 - 5 - июнь

А я хочу посмотреть

Район1 - 7 - июнь

Ответы [ 2 ]

2 голосов
/ 22 июня 2009

если я правильно вас прочитал, вы хотите видеть только РАЙОН, СУММУ (ЗАВЕРШЕНО) если это так, вы должны просто

 SELECT DISTRTICT, SUM(COMPLETED) FROM...

и в конце

 GROUP BY DISTRICT

редактирование:

с вашим обновленным запросом, я предлагаю вам сделать следующее:

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

и в конце

 GROUP BY DISTRICT, MONTHNAME
0 голосов
/ 22 июня 2009

Я не проверил это полностью, но похоже, что ваша проблема в том, что вы "завершили", что является вашим агрегатом в вашем GROUP BY в конце.

Измените последнюю строку, как показано ниже, и посмотрите, работает ли она.

GROUP BY DISTRICT, monthname, month
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...