2009-06-22 24 views
1

Ich habe die Abfrage unten, die mich Probleme verursacht. Es ist insgesamt aber gut, da ich verschiedene Service-Termine haben ihre Gruppierung von distinct dann servicedate, aber ich will nur einzelne Bezirke mit den Summen als nächstes. Wie kann ich das umgehen, da ich jetzt verwirrt bin !!!Unterabfrage Ausgabe

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 

Beispieldaten

So zum Beispiel sehe ich zur Zeit

District1 - 2 - Juni District1 - 5 - Juni

Und ich will

District1 sehen - 7 - Juni

+0

Könnten Sie bitte einige Beispieldaten und eine Ergebnismenge bereitstellen, die Sie erhalten möchten? – Quassnoi

+0

Beispiel oben wie angefordert –

Antwort

0

Ich habe nicht überprüft ich t gründlich durch, aber es sieht aus wie Ihr Problem ist, dass Sie "abgeschlossen" haben, die Ihr Aggregat in Ihrer GROUP BY am Ende ist.

Ändern Sie die letzte Zeile wie unten und sehen Sie, ob das funktioniert.

+0

Ich nahm das abgeschlossene und ich bekomme weniger Ergebnisse, aber ich bekomme immer noch für einen Bezirk 2 Sätze von Ergebnissen für den gleichen Monat, und ich will nur einen Bezirk, 1 Monat? So Beispiel sehe ich zur Zeit District1 - 2 - Juni District1 - 5 - Juni Und ich will District1 sehen - 7 - Juni –

2

Wenn ich Sie richtig gelesen habe, möchten Sie nur DISTRTICT, SUM (COMPLETED) sehen. wenn dies der Fall ist, sollten Sie nur

SELECT DISTRTICT, SUM(COMPLETED) FROM... 

und am Ende

GROUP BY DISTRICT 

edit:

mit der aktualisierten Anfrage, ich schlage vor, Sie wie folgt vor:

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

und am Ende

GROUP BY DISTRICT, MONTHNAME