2016-04-22 11 views
1

Ich versuche eine Abfrage zu erstellen, die mir die durchschnittliche Anzahl der an einem bestimmten Wochentag durchgeführten Prozeduren sowie die Gesamtzahl der Prozeduren an diesem Wochentag für den gesamten Zeitraum angibt. Die Abfrage, die ich entwickelt habe, sieht so aus, als ob sie funktioniert, aber die Werte addieren sich nicht richtig.SQL Query Durchschnitt nach Wochentag

SELECT [Day], COUNT(*) AS "Week Day Count", AVG(Totals) AS [Avg] 
FROM 
(
    SELECT 
    w = DATEDIFF(WEEK, 0, CompleteDate), 
     [Day] = DATENAME(WEEKDAY, CompleteDate), 
     Totals = COUNT(*) 
    FROM dbo.[order] 
     WHERE CompleteDate Between '2015-01-01' AND '2016-04-22' 
      AND PlacerFld2 IN ('CT','SAMR') 
      AND OrderStatusID = '2' 
    GROUP BY 
     DATEDIFF(WEEK, 0, CompleteDate), 
     DATENAME(WEEKDAY, CompleteDate), 
     DATEPART(WEEKDAY, CompleteDate) 
) AS q 
GROUP BY [Day] 
ORDER BY [Day]; 

Ich fühle mich wie die durchschnittlichen Ergebnisse korrekt sind, jedoch der „Woche Day Count“ kommt nicht annähernd so hoch wie ich dachte, es sein sollte, und es ist vielleicht nur so, wie ich es bin zu berechnen.

Wenn ich die Werte in der Woche Tag aufaddieren Count es kommt etwa 365 zu sein, aber wenn ich die Abfrage unten tun, bekomme ich etwa 1750:

SELECT COUNT(*) AS "Total 2015-2016" 
FROM [order] 
WHERE CompleteDate Between '2015-01-01' AND '2016-04-22' 
      AND PlacerFld2 IN ('CT','SAMR') 
      AND OrderStatusID = '2' 

Antwort

1

Ich vermute, dass Sie tatsächlich die wollen Summe des Gesamt:

SUM(Totals) AS "Week Day Count" 

Ihre Anfrage ist (glaube ich) für jeden Wochentag der Anzahl der Tage in den Daten zu zählen.

+0

danke. Ich fühle mich dumm, dass ich das vermisst habe. Ich wünsche ihnen einen wunderbaren Tag! –